Kurangi ukuran file PNG menggunakan C#

Kurangi ukuran file PNG menggunakan C#

Penyimpanan sistem adalah subjek penting di era teknologi modern ini. Jumlah data meningkat setiap hari dan representasi visual dari file data telah mendapatkan banyak popularitas. Namun, ada banyak cara untuk mengompresi format file gambar tetapi kualitas gambar tidak boleh dikompromikan. Oleh karena itu, kami akan menggunakan .NET image compression API ini untuk mengompres gambar PNG. Dalam postingan blog ini, kita akan mempelajari cara mengurangi ukuran file PNG menggunakan program C#. Kami akan membahas poin-poin berikut dalam artikel ini:

Instalasi API kompresi gambar

Pustaka ini menawarkan berbagai metode dan properti untuk memanipulasi dan memproses berbagai format file gambar seperti JPEG, TIFF, dan lainnya. Ada dua cara untuk menginstal API ini ke proyek .NET Anda. Oleh karena itu, Anda dapat mengunduh file DLL atau menjalankan perintah berikut di manajer paket NuGet.

Install-Package Aspose.Imaging

Cara memperkecil ukuran file PNG menggunakan C#

Anda dapat melihat setumpuk besar metode dan properti di sini untuk mengompres format file gambar. Oleh karena itu, kami akan menulis langkah-langkah dan cuplikan kode untuk mengompresi file PNG secara terprogram. Ikuti langkah-langkah berikut:

  1. Muat gambar sumber PNG dengan memanggil metode Load.
  2. Aktifkan metode Simpan untuk menyimpan gambar terkompresi dalam format PNG.
  3. Tetapkan nilai properti Progresif yang menunjukkan apakah PngOptions ini progresif.
  4. IndexedColor mewakili jenis warna di mana setiap piksel adalah indeks palet.
  5. Tetapkan nilai CompressionLevel untuk mengatur kompresi maksimum.
  6. Metode GetCloseImagePalette akan mendapatkan palet warna dari gambar raster (membuat palet gambar) jika gambar tidak memilikinya. Jika ada palet, itu akan digunakan alih-alih melakukan perhitungan.
    // Load the source PNG image by calling the Load method
    using (Image image = Image.Load("image.png"))
    {
    // Invoke the Save method to save the compressed image in PNG format
    image.Save(out.png, new ImageOptions.PngOptions()
    {
    // Set a value of Progressive property that indicates whether this PngOptions is progressive.
    Progressive = true,
    // IndexedColor represents the color type where each pixel is a palette index
    ColorType = FileFormats.Png.PngColorType.IndexedColor,
    // Assign the value of CompressionLevel to set the maximum compression
    CompressionLevel = 9,
    // GetCloseImagePalette method will get color palette from raster image (palletizes image) in case the image does not have one. In case palette exists it will be used instead performing calculations.
    Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram)
    });
    }

API kompresi gambar - opsi lanjutan

Di bagian sebelumnya, kita belajar cara mengurangi ukuran file PNG menggunakan C#. Sekarang, mari jelajahi beberapa metode dan properti terkemuka lainnya dari API kompresi gambar ini. Di bagian ini, kami akan membuat panggilan API khusus untuk membuat file PNG secara terprogram. Anda dapat mengikuti langkah-langkah dan cuplikan kode yang disebutkan di bawah ini:

  1. Inisialisasi instance dari kelas PngImage yang membuat gambar PNG berukuran 100x100 px.
  2. Metode LinearGradientBrush merangkum Brush dengan gradien linier.
  3. Menginisialisasi instance baru dari struktur Point dengan koordinat yang ditentukan.
  4. Buat instance dari kelas Graphics yang merepresentasikan grafik sesuai dengan mesin grafis yang digunakan dalam rakitan saat ini.
  5. Isi gambar dengan gradien biru-transparan dengan metode FillRectangle.
  6. Buat objek dari kelas PngOptions.
  7. Tetapkan nilai properti Progresif yang menunjukkan apakah PngOptions ini progresif.
  8. Anda dapat mengatur resolusi horizontal dan vertikal menjadi 96 piksel per inci dengan menginisialisasi kelas ResolutionSetting.
  9. Tetapkan jenis warna dengan menetapkan nilai ke properti ColorType.
  10. Tetapkan nilai ke properti CompressionLevel untuk mengatur tingkat kompresi maksimum.
  11. Properti FilterType menetapkan jenis filter yang digunakan selama proses penyimpanan file PNG.
  12. Tetapkan jumlah bit per saluran dengan menetapkan nilai ke properti BitDepth.
  13. Simpan ke file dengan memanggil metode Simpan.
    // Initialize an instance of PngImage class that creates a PNG image of 100x100 px.
    using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
    {
    // LinearGradientBrush method encapsulates a Brush with a linear gradient
    Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
    // Initializes a new instance of the Point structure with the specified coordinates.
    new Aspose.Imaging.Point(0, 0),
    new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
    Aspose.Imaging.Color.Blue,
    Aspose.Imaging.Color.Transparent);
    // Intantiate an instance of Graphics class that represents the graphics according to the graphics engine used in the current assembly.
    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);
    // Fill the image with the blue-transparent gradient with FillRectangle method .
    graphics.FillRectangle(gradientBrush, pngImage.Bounds);
    // Create an object of the PngOptions class
    Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();
    // sets a value of Progressive property that indicates whether this PngOptions is progressive.
    saveOptions.Progressive = true;
    // Set the horizontal and vertical resolution to 96 pixels per inch by initializing the ResolutionSetting class.
    saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
    // set the type of the color by assiging a value to the ColorType property .
    saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;
    // Assign a value to the CompressionLevel property to set the maximum level of compression.
    saveOptions.CompressionLevel = 9;
    // FilterType property sets the filter type used during png file save process.
    saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;
    // set the number of bits per channel by assiging a value to the BitDepth property.
    saveOptions.BitDepth = 8;
    // Save to a file by calling the Save method.
    pngImage.Save( "output.png", saveOptions);
    }
    Anda dapat melihat output pada gambar di bawah ini:
    API kompresi gambar

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk mencoba API tanpa batasan evaluasi.

Menyimpulkan

Kami dapat mengakhiri posting blog ini di sini. Kami harap Anda telah mempelajari cara mengurangi ukuran file PNG menggunakan C# secara terprogram. Selain itu, kami telah melalui beberapa metode lanjutan lain dari API kompresi gambar ini di mana kami telah membuat file PNG yang dioptimalkan. Namun, Anda dapat mengunjungi [tautan] ini 26 untuk metode dan properti lebih lanjut terkait format file PNG. Yang terpenting, jangan lewatkan dokumentasi perpustakaan .NET ini untuk mengetahui ekosistemnya. Kami akan menulis tentang topik bermanfaat lainnya di posting blog mendatang. Oleh karena itu, tetap terhubung dengan conholdate.com untuk pembaruan.

Berikan pertanyaan

Anda dapat memberi tahu kami tentang pertanyaan atau pertanyaan Anda di forum kami.

FAQ

Bagaimana cara mengompres gambar PNG di C#? Instal .NET image compression API ini untuk mengompres dan memanipulasi format file PNG. Ini menawarkan metode dan properti untuk mengompres format file gambar populer lainnya seperti JPEG, TIFF, dan lainnya. Bagaimana memperkecil ukuran file gambar untuk format PNG? [Metode] ini 14 memungkinkan Anda mengurangi ukuran file PNG menggunakan C # secara terprogram. Selain itu, Anda dapat mengonfigurasi panggilan API sesuai kebutuhan Anda. Bagaimana mengubah ukuran gambar PNG dalam contoh kode C#? Ikuti ini tautan untuk mengetahui tentang cuplikan kode yang mengubah ukuran gambar PNG secara terprogram. API .NET ini sangat kuat dan menawarkan berbagai metode & properti.

Lihat juga