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.