Skompresuj EPS przez C#
Twórz własne aplikacje .NET, aby kompresować pliki EPS przy użyciu interfejsów API po stronie serwera.
Jak skompresować pliki EPS za pomocą C#
Przygotowanie zdjęć do publikacji obejmuje zarówno aspekty twórcze, jak i techniczne, w tym kompresję plików. Chociaż obrazy o wysokiej rozdzielczości mają kluczowe znaczenie w przypadku reklam drukowanych lub zewnętrznych, mogą one zmniejszać wydajność sieci ze względu na duży rozmiar pliku. Odpowiednia technika kompresji obrazu różni się w zależności od celu i platformy wydawniczej. Duże pliki mogą spowalniać ładowanie, szczególnie w przypadku połączeń mobilnych, co pogarsza komfort użytkowania. Użytkownicy mogą opuścić witrynę, która ładuje się zbyt długo i poszukać szybszej alternatywy. I odwrotnie, nadmierna kompresja obrazu może powodować rozmycie i pikselację, pogarszając wrażenia wizualne. Właściwy wybór algorytmów i współczynników kompresji jest niezbędny do osiągnięcia równowagi pomiędzy rozmiarem pliku a jakością obrazu. Aby skompresować pliki EPS, użyjemy Aspose.Imaging dla .NET API, który jest bogatym w funkcje, wydajnym i łatwym w użyciu interfejsem API do obróbki i konwersji obrazów dla platformy C#. Otwarty NuGet menedżer pakietów, szukaj Aspose.Obrazowanie i zainstaluj. Możesz również użyć następującego polecenia z konsoli Menedżera pakietów.
Polecenie konsoli menedżera pakietów
PM> Install-Package Aspose.Imaging
Kroki kompresji EPS przez C#
Potrzebujesz aspose.imaging.dll aby wypróbować następujący przepływ pracy we własnym środowisku.
- Załaduj pliki EPS za pomocą metody Image.Load
- Kompresuj obrazy;
- Zapisz skompresowany obraz na dysku w formacie obsługiwanym przez Aspose.Imaging
wymagania systemowe
Aspose.Imaging dla .NET jest obsługiwane we wszystkich głównych systemach operacyjnych. Tylko upewnij się, że masz następujące wymagania wstępne.
- Microsoft Windows lub kompatybilny system operacyjny z .NET Framework, .NET Core, Windows Application, ASP.NET Web Application.
- Środowisko programistyczne, takie jak Microsoft Visual Studio.
- Aspose.Imaging dla platformy .NET, do której odwołuje się Twój projekt.
Kompresuj obrazy w formacie 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"); | |
} | |
} | |
} | |
); | |
} |
Informacje o Aspose.Imaging dla .NET API
Aspose.Imaging API to rozwiązanie do przetwarzania obrazów do tworzenia, modyfikowania, rysowania lub konwertowania obrazów (zdjęć) w aplikacjach. Oferuje: wieloplatformowe przetwarzanie obrazu, w tym między innymi konwersje między różnymi formatami obrazu (w tym jednolite przetwarzanie obrazu wielostronicowego lub wieloklatkowego), modyfikacje takie jak rysowanie, praca z prymitywami graficznymi, przekształcenia (zmiana rozmiaru, przycinanie, odwracanie i obracanie , binaryzacja, skala szarości, dostosowanie), zaawansowane funkcje manipulacji obrazem (filtrowanie, dithering, maskowanie, prostowanie) oraz strategie optymalizacji pamięci. Jest to samodzielna biblioteka i nie zależy od żadnego oprogramowania do obsługi obrazów. W projektach można łatwo dodać wysokowydajne funkcje konwersji obrazów za pomocą natywnych interfejsów API. Są to w 100% prywatne lokalne interfejsy API, a obrazy są przetwarzane na Twoich serwerach.Kompresuj EPS za pomocą aplikacji online
Skompresuj dokumenty w formacie EPS, odwiedzając naszą witrynę demonstracyjną na żywo . Demo na żywo ma następujące zalety
EPS Co jest EPS Format pliku
Pliki z rozszerzeniem EPS zasadniczo opisują program w języku Encapsulated PostScript, który opisuje wygląd pojedynczej strony. Nazwa „Enkapsulowana”, ponieważ może być zawarta lub zawarta w innym opisie strony w języku PostScript. Ten format pliku oparty na skrypcie może zawierać dowolną kombinację tekstu, grafiki i obrazów. Pliki EPS mogą zawierać obraz podglądu mapy bitowej zamknięty w środku do wyświetlania przez aplikacje, które mogą otwierać takie pliki. Pliki EPS można konwertować do standardowych formatów graficznych, takich jak JPG, PNG, TIFF i PDF przy użyciu różnych aplikacji, m.in. Adobe Illustrator, Photoshop i PaintShop Pro. Ze względu na lukę w zabezpieczeniach plików EPS pakiety Office 2016, Office 2013, Office 2010 i Office 365 wyłączyły możliwość wstawiania plików EPS do dokumentów pakietu Office.
Czytaj więcejInne obsługiwane formaty kompresji
Używając C#, można łatwo skompresować różne formaty, w tym.