Komprimujte EPSs pomocí C#
Vytvořte si vlastní aplikace .NET pro komprimaci souborů EPS pomocí rozhraní API na straně serveru.
Jak komprimovat soubory EPS pomocí C#
Příprava obrázků k publikaci zahrnuje jak kreativní, tak technické aspekty, včetně komprese souborů. Zatímco obrázky s vysokým rozlišením jsou zásadní pro tisk nebo venkovní reklamu, mohou snížit výkon webu kvůli své velké velikosti souboru. Vhodná technika komprese obrazu se liší v závislosti na účelu a publikační platformě. Velké soubory mohou zpomalit načítání, zejména u mobilních připojení, což vede ke špatné uživatelské zkušenosti. Uživatelé mohou opustit web, jehož načítání trvá příliš dlouho, a hledat rychlejší alternativu. Naopak nadměrná komprese obrazu může mít za následek rozmazání a pixelizaci, což zhoršuje zážitek ze sledování. Správná volba kompresních algoritmů a poměrů je nezbytná pro dosažení rovnováhy mezi velikostí souboru a kvalitou obrazu. Abychom komprimovali soubory EPS, použijeme Aspose.Imaging for .NET API, které je funkčně bohaté, výkonné a snadno použitelné rozhraní API pro manipulaci a konverzi obrázků pro platformu C#. Otevřete správce balíčků NuGet , vyhledejte Aspose.Imaging a nainstalujte. Můžete také použít následující příkaz z konzoly Správce balíčků.
Příkaz konzole Správce balíčků
PM> Install-Package Aspose.Imaging
Kroky ke kompresi EPSs pomocí C#
K vyzkoušení následujícího pracovního postupu ve svém vlastním prostředí potřebujete aspose.imaging.dll .
- Načíst soubory EPS metodou Image.Load
- Komprimovat obrázky;
- Uložte komprimovaný obrázek na disk ve formátu podporovaném Aspose.Imaging
Požadavky na systém
Aspose.Imaging pro .NET je podporován ve všech hlavních operačních systémech. Jen se ujistěte, že máte následující předpoklady.
- Microsoft Windows nebo kompatibilní OS s rozhraním .NET Framework, .NET Core, aplikací pro Windows, webovou aplikací ASP.NET.
- Vývojové prostředí jako Microsoft Visual Studio.
- Aspose.Imaging pro .NET odkazovaný ve vašem projektu.
Komprimovat obrázky ve formátu EPS – .NET
using Aspose.Imaging.FileFormats.Bmp; | |
using Aspose.Imaging.FileFormats.Dicom; | |
using Aspose.Imaging.FileFormats.Emf; | |
using Aspose.Imaging.FileFormats.Jpeg; | |
using Aspose.Imaging.FileFormats.Jpeg2000; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.FileFormats.Psd; | |
using Aspose.Imaging.FileFormats.Tiff.Enums; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Masking; | |
using Aspose.Imaging.Masking.Options; | |
using Aspose.Imaging.Masking.Result; | |
using Aspose.Imaging.Sources; | |
using Aspose.Imaging; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads\templates\"; | |
CompressVectorFormatsToEmf(); | |
void CompressVectorFormatToSvg() | |
{ | |
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" }; | |
formatExts.ForEach | |
( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () => | |
{ | |
switch (image.FileFormat) | |
{ | |
case FileFormat.Cdr: | |
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Cmx: | |
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Odg: | |
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Otg: | |
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
default: | |
return null; | |
} | |
}; | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.svgz", new SvgOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete($"{outputFile}_p{pageIndex + 1}.svgz"); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile + ".svgz", new SvgOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete(outputFile + ".svgz"); | |
} | |
} | |
} | |
); | |
} | |
void CompressVectorFormatToWmf() | |
{ | |
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" }; | |
formatExts.ForEach | |
( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () => | |
{ | |
switch (image.FileFormat) | |
{ | |
case FileFormat.Cdr: | |
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Cmx: | |
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Odg: | |
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Otg: | |
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
default: | |
return null; | |
} | |
}; | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.wmz", new WmfOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete($"{outputFile}_p{pageIndex + 1}.wmz"); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile + ".wmz", new WmfOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete(outputFile + ".wmz"); | |
} | |
} | |
} | |
); | |
} | |
void CompressVectorFormatsToEmf() | |
{ | |
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" }; | |
formatExts.ForEach | |
( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () => | |
{ | |
switch (image.FileFormat) | |
{ | |
case FileFormat.Cdr: | |
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Cmx: | |
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Odg: | |
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
case FileFormat.Otg: | |
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height }; | |
default: | |
return null; | |
} | |
}; | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.emz", new EmfOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete($"{outputFile}_p{pageIndex + 1}.emz"); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile + ".emz", new EmfOptions() | |
{ | |
Compress = true, | |
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke() | |
}); | |
File.Delete(outputFile + ".emz"); | |
} | |
} | |
} | |
); | |
} |
O Aspose.Imaging pro .NET API
Aspose.Imaging API je řešení pro zpracování obrázků pro vytváření, úpravu, kreslení nebo konverzi obrázků (fotografií) v rámci aplikací. Nabízí: multiplatformní zpracování obrazu, mimo jiné včetně převodů mezi různými formáty obrázků (včetně jednotného vícestránkového nebo vícesnímkového zpracování obrazu), úpravy jako kreslení, práci s grafickými primitivy, transformace (změna velikosti, oříznutí, převrácení a otočení). binarizace, stupně šedi, úprava), pokročilé funkce pro manipulaci s obrázky (filtrování, rozklad, maskování, vyrovnání sklonu) a strategie optimalizace paměti. Je to samostatná knihovna a není závislá na žádném softwaru pro operace s obrázky. V rámci projektů lze snadno přidat vysoce výkonné funkce pro konverzi obrázků s nativními rozhraními API. Jedná se o 100% soukromá on-premise API a obrázky se zpracovávají na vašich serverech.Komprimujte EPS pomocí online aplikace
Komprimujte dokumenty ve formátu EPS na našem webu s živými ukázkami . Živé demo má následující výhody
EPS co je EPS Formát souboru
Soubory s příponou EPS v podstatě popisují program jazyka Encapsulated PostScript, který popisuje vzhled jedné stránky. Název "Encapsulated", protože může být zahrnut nebo zapouzdřen v popisu stránky v jiném jazyce PostScript. Tento formát souboru založený na skriptech může obsahovat libovolnou kombinaci textu, grafiky a obrázků. Soubory EPS mohou obsahovat bitmapový náhledový obrázek zapouzdřený uvnitř pro zobrazení aplikacemi, které mohou takové soubory otevřít. Soubory EPS lze převést do standardních obrazových formátů, jako jsou JPG, PNG, TIFF a PDF pomocí různých aplikací, např. Adobe Illustrator, Photoshop a PaintShop Pro. Kvůli bezpečnostní chybě v souborech EPS vypnuly Office 2016, Office 2013, Office 2010 a Office 365 možnost vkládat soubory EPS do dokumentů Office.
Přečtěte si víceDalší podporované formáty komprese
Pomocí C# lze snadno komprimovat různé formáty včetně.