Jak kompresować obrazy w C#

Jak kompresować obrazy w C#

Zintegruj tę kompresję .NET bibliotekę, aby kompresować popularne formaty plików graficznych, takie jak TIFF, JPG, PNG i inne. W dużych organizacjach przechowywanie plików jest kwestią kluczową i zawsze starasz się optymalizować pliki biznesowe i optymalizować ich rozmiar. Dlatego możesz użyć tej biblioteki do programowej kompresji obrazów w aplikacji .NET. Ponadto otrzymasz także fragmenty kodu i instrukcje dotyczące kompresowania obrazów w języku C#|.

W tym przewodniku zostaną omówione następujące punkty:

Instalacja biblioteki kompresji .NET

Jeśli chodzi o instalację tego API, jest ona bardzo prosta. Możesz pobrać bibliotekę DLL lub zainstalować ją, uruchamiając następujące polecenie w menedżerze pakietów NuGet.

Install-Package Aspose.Imaging

Programowo kompresuj JPG

Teraz zaimplementujemy programowe kompresowanie obrazów w języku C#. Możesz wykonać kroki i fragment kodu wymieniony poniżej:

  1. Utwórz instancję klasy Image i wywołaj metodę Load, aby załadować obraz JPG.
  2. Zainicjuj obiekt klasy JpegOptions.
  3. Ustaw typ koloru obrazu JPEG, ustawiając wartość właściwości ColorType.
  4. Określ typ kompresji, ustawiając wartość właściwości CompressionType.
  5. Metoda Save zapisze obraz.

Skopiuj i wklej następujący kod do swojego głównego pliku:

// Utwórz instancję Image i klasy i wywołaj metodę Load, aby załadować obraz JPG  
using (var original = Image.Load( "sample.jpg"))
{
    // Zainicjuj obiekt klasy JpegOptions 
    var jpegOptions = new JpegOptions()
    {
        // Ustaw typ koloru obrazu JPEG, ustawiając wartość właściwości ColorType.   
        ColorType = JpegCompressionColorMode.Grayscale,
        // Określ typ kompresji, ustawiając wartość właściwości CompressionType 
        CompressionType = JpegCompressionMode.Progressive,

    };
    //  Metoda Save zapisze obraz.
    original.Save( "result.jpg", jpegOptions);
}

Jak skompresować TIFF w C#

Aby skompresować obraz TIFF, wykonaj następujące kroki:

Oto kroki:

  1. Wywołaj metodę Load, aby załadować obraz TIFF.
  2. Zainicjuj konstruktor klasy TiffOptions z wartością TiffExpectedFormat.Default.
  3. Ustaw wartość właściwości BitsPerSample.
  4. Ustaw także wartość właściwości Compression.
  5. Na koniec ustaw właściwości Fotometryczny i Paleta.
  6. Wywołaj metodę Save, aby zapisać obraz.

Skopiuj i wklej następujący kod do swojego głównego pliku:

//  Wywołaj metodę Load, aby załadować obraz TIFF  
using (Image image = Image.Load( "sample.tiff"))
{
    // Zainicjuj konstruktor klasy TiffOptions z wartością TiffExpectedFormat.Default.  
    TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
    // Ustaw wartość właściwości BitsPerSample 
    outputSettings.BitsPerSample = new ushort[] { 4 };
    // Ustaw także wartość właściwości Compression 
    outputSettings.Compression = TiffCompressions.Lzw;
    // Na koniec ustaw właściwości Fotometryczne i Paleta  
    outputSettings.Photometric = TiffPhotometrics.Palette;
    outputSettings.Palette = ColorPaletteHelper.Create4BitGrayscale(false);
    // Wywołaj metodę Save, aby zapisać obraz. 
    image.Save(  "result.tiff", outputSettings);
}

Jak zmniejszyć rozmiar pliku PNG?

Ta biblioteka kompresji .NET oferuje szeroką gamę metod łatwego manipulowania i kompresowania plików PNG.

Poniżej znajdują się kroki i fragment kodu umożliwiające programową kompresję PNG:

  1. Załaduj obraz PNG, wywołując metodę Load.
  2. Zapętlaj możliwy zakres CompressionLevel.
  3. Utwórz instancję klasy PngOptions dla każdego wynikowego pliku PNG, ustaw poziom kompresji i zapisz wynik na dysku.
  4. Poziom kompresji obrazu PNG mieści się w zakresie 0–9, gdzie 9 to maksymalna kompresja, a 0 to tryb przechowywania. Ustaw wartość właściwości CompressionLevel.
  5. Wywołaj metodę save, aby zapisać obraz.

Skopiuj i wklej następujący kod do swojego głównego pliku:

// Załaduj obraz z pliku wywołując metodę Load 
using (Image image = Image.Load( "result.png"))
{
    // Zapętlaj 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();
        // Poziom kompresji obrazu png w zakresie 0-9, gdzie 9 to maksymalna kompresja, a 0 to tryb przechowywania. Ustaw wartość właściwości CompressionLevel.
        options.CompressionLevel = i;
        // Wywołaj metodę save, aby zapisać obraz 
        image.Save(i + "_dam.png", options);
    }
}

Zdobądź bezpłatną licencję

Możesz skorzystać z bezpłatnej licencji tymczasowej, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Podsumowując

Możemy zakończyć ten samouczek na blogu nadzieją, że nauczyłeś się kompresować obrazy w języku C#. Co więcej, przejrzałeś tę bibliotekę kompresji .NET, aby programowo kompresować pliki obrazów w formatach PNG, TIFF i JPG. Co najważniejsze, możesz odwiedzić dokumentację, aby dowiedzieć się o innych funkcjach.

Ponadto sugerujemy skorzystanie z naszego Przewodnika wprowadzającego.

Wreszcie conholdate.com pisze nowe posty na blogu. Dlatego też prosimy o kontakt w celu otrzymywania regularnych aktualizacji.

Zadać pytanie

Możesz dać nam znać o swoich pytaniach lub wątpliwościach na naszym forum.

Często zadawane pytania

Jak skompresować obraz w rdzeniu .NET?

Odwiedź ten link, aby poznać fragmenty kodu i metody API udostępniane przez tę kompresję .NET bibliotekę.

Jak skompresować PNG?

Utwórz instancję PngOptions dla każdego wynikowego PNG, ustaw wartość właściwości CompressionLevel i wywołaj metodę save, aby zapisać obraz.

Zobacz też