Kompresja obrazu to popularny sposób zmniejszania rozmiaru obrazów. Pozwala zminimalizować przestrzeń i czas potrzebny do odpowiednio przechowywania i przesyłania obrazów. Dostępne są różne techniki kompresji, które kompresują obrazy w taki sposób, aby ich jakość nie uległa pogorszeniu. Zgodnie z tym, ten post zawiera kilka prostych sposobów programowej kompresji obrazów PNG, JPEG i TIFF przy użyciu języka C#.
- Interfejs API kompresji obrazu C# — bezpłatne pobieranie
- Kompresuj obrazy PNG w C#
- Kompresuj obrazy JPEG w C#
- Zastosuj kompresję do obrazów TIFF w C#
Interfejs API kompresji obrazu C# — bezpłatne pobieranie
Aspose.Imaging for .NET to potężny interfejs API do przetwarzania obrazów, który umożliwia manipulowanie popularnymi formatami obrazów z poziomu aplikacji .NET. Ponadto interfejs API umożliwia stosowanie różnych typów kompresji do obrazów, w tym PNG, JPEG i TIFF. Aby korzystać z API, możesz pobrać jego bibliotekę DLL lub zainstalować ją za pomocą NuGet.
Install-Package Aspose.Imaging
Kompresuj obrazy PNG w C#
W przypadku obrazów PNG można ustawić poziom kompresji od 0 do 9, gdzie 9 to maksymalna kompresja, a 0 to tryb przechowywania. Poniżej przedstawiono kroki kompresji obrazu PNG przy użyciu Aspose.Imaging dla platformy .NET.
- Załaduj obraz, używając klasy Image.
- Utwórz obiekt klasy PngOptions.
- Ustaw poziom kompresji za pomocą właściwości PngOptions.CompressionLevel.
- Zapisz obraz metodą Image.Save(String, PngOptions).
Poniższy przykładowy kod pokazuje, jak kompresować obrazy PNG przy użyciu języka C#.
// Ścieżka do katalogu dokumentów.
string dataDir = RunExamples.GetDataDir_PNG();
// Załaduj obraz z pliku (lub strumienia)
using (Image image = Image.Load(dataDir + "aspose_logo.png"))
{
// Zapętlić możliwy zakres CompressionLevel
for (int i = 0; i <= 9; i++)
{
// Utwórz instancję PngOptions dla każdego wynikowego pliku PNG, ustaw poziom kompresji i zapisz wynik na dysku
PngOptions options = new PngOptions();
options.CompressionLevel = i;
image.Save(i + "_out.png", options);
}
}
Kompresuj obrazy JPEG w C#
Aby poradzić sobie z obrazami JPEG, Aspose.Imaging for .NET zapewnia klasę JpegOptions, która oferuje następujące typy kompresji dla obrazów JPEG.
- Linia bazowa
- Progresywny
- Bezstratny
- JpegLs
Poniżej przedstawiono kroki kompresji obrazów JPEG przy użyciu jednego z wyżej wymienionych typów kompresji.
- Załaduj obraz JPEG, używając klasy Image.
- Utwórz obiekt klasy JpegOptions.
- Ustaw tryb kolorów za pomocą właściwości JpegOptions.ColorType.
- Ustaw typ kompresji za pomocą właściwości JpegOptions.CompressionType.
- Zapisz obraz przy użyciu metody Image.Save(String, JpegOptions).
Poniższy przykład kodu pokazuje, jak skompresować obraz JPEG przy użyciu języka C#.
// Ścieżka do katalogu dokumentów.
string dataDir = RunExamples.GetDataDir_JPEG();
using (var original = Image.Load(dataDir+"ColorGif.gif"))
{
var jpegOptions = new JpegOptions()
{
ColorType = JpegCompressionColorMode.Grayscale,
CompressionType = JpegCompressionMode.Progressive,
};
original.Save("D:/temp/result.jpg", jpegOptions);
}
Zastosuj kompresję do obrazów TIFF w C#
Aspose.Imaging for .NET zapewnia szeroki zakres typów kompresji obrazów TIFF, w tym LZW, Packbits, CCIT Fax 3 i 4 itd. Możesz wybrać odpowiedni typ zgodnie ze swoimi wymaganiami. Poniżej opisano kroki kompresji obrazu TIFF.
- Załaduj obraz TIFF przy użyciu klasy Image.
- Utwórz obiekt TiffOptions i zainicjuj go wartością wyliczeniową TiffExpectedFormat.Default.
- Ustaw tryb BitsPerSample, Kompresja, Fotometryczny i Paleta dla obrazu Tiff.
- Zapisz obraz przy użyciu metody Image.Save(String, TiffOptions).
Poniższy przykładowy kod pokazuje, jak kompresować obrazy TIFF przy użyciu języka C#.
// Ścieżka do katalogu dokumentów.
string dataDir = RunExamples.GetDataDir_ModifyingAndConvertingImages();
// Załaduj obraz za pośrednictwem lokalizacji ścieżki pliku lub strumienia
Image image = Image.Load(dataDir + "SampleTiff.tiff");
// Utwórz instancję TiffOptions dla wynikowego obrazu
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
// Ustaw bity na próbkę, kompresję, tryb fotometryczny i paletę odcieni szarości
outputSettings.BitsPerSample = new ushort[] { 4 };
outputSettings.Compression = TiffCompressions.Lzw;
outputSettings.Photometric = TiffPhotometrics.Palette;
outputSettings.Palette = ColorPaletteHelper.Create4BitGrayscale(false);
image.Save(dataDir + "SampleTiff_out.tiff", outputSettings);
Wniosek
W tym poście nauczyłeś się, jak kompresować obrazy PNG, JPEG i TIFF za pomocą języka C#. Dla obrazów JPEG i TIFF wymieniono również różne obsługiwane techniki kompresji. Więcej informacji na temat interfejsu API przetwarzania obrazów .NET można znaleźć w dokumentacji.
Zobacz też
Info: Używając konwertera Aspose JPG na PPT lub PNG na PPT, możesz generować prezentacje PowerPoint z prostych obrazów.