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

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.

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.

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.

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.