C# kullanarak PNG dosyasının boyutunu küçültün

C# kullanarak PNG dosyasının boyutunu küçültün

Sistem depolama, bu modern teknoloji çağında kritik bir konudur. Veri miktarı her geçen gün artıyor ve veri dosyalarının görsel temsili oldukça popülerlik kazanıyor. Ancak görüntü dosyası formatlarını sıkıştırmanın birçok yolu vardır ancak görüntü kalitesinden ödün verilmemelidir. Bu nedenle, PNG resimlerini sıkıştırmak için bu .NET resim sıkıştırma API’sini kullanacağız. Bu blog yazısında, C# kullanarak programlı olarak PNG dosya boyutunu nasıl küçülteceğimizi öğreneceğiz.

Bu yazıda aşağıdaki noktaları ele alacağız:

Görüntü sıkıştırma API’si kurulumu

Bu kitaplık, JPEG, TIFF ve daha fazlası gibi çeşitli görüntü dosyası formatlarını işlemek ve işlemek için çok çeşitli yöntemler ve özellikler sunar. Bu API’yi .NET projenize yüklemenin iki yolu vardır.

Bu nedenle, DLL dosyalarını indirebilir veya NuGet paket yöneticisinde aşağıdaki komutu çalıştırabilirsiniz.

Install-Package Aspose.Imaging

C# kullanılarak PNG dosya boyutu nasıl azaltılır

Görüntü dosyası formatlarını sıkıştırmak için burada çok sayıda yöntem ve özellik görebilirsiniz. Bu nedenle PNG dosyasını programlı olarak sıkıştırmak için adımları ve kod pasajını yazacağız.

Aşağıdaki adımları izleyin:

  1. Load yöntemini çağırarak kaynak PNG görüntüsünü yükleyin.
  2. Sıkıştırılmış görüntüyü PNG formatında kaydetmek için Save yöntemini çağırın.
  3. Bu PngOptions’ın aşamalı olup olmadığını gösteren Progressive özelliğinin değerini ayarlayın.
  4. IndexedColor, her pikselin bir palet dizini olduğu renk türünü temsil eder.
  5. Maksimum sıkıştırmayı ayarlamak için CompressionLevel değerini atayın.
  6. GetCloseImagePalette yöntemi, görüntüde bir renk paletinin bulunmaması durumunda raster görüntüden bir renk paleti alır (görüntüyü paletler). Bir paletin mevcut olması durumunda, hesaplama yapmak yerine bu palet kullanılacaktır.
// Load yöntemini çağırarak kaynak PNG görüntüsünü yükleyin 
        using (Image image = Image.Load("image.png"))
        {
        // Sıkıştırılmış görüntüyü PNG formatında kaydetmek için Save yöntemini çağırın  
            image.Save(out.png, new ImageOptions.PngOptions()
            {
            // Bu PngOptions'ın aşamalı olup olmadığını gösteren bir Progressive özelliği değeri ayarlayın.
                Progressive = true,
            // IndexedColor, her pikselin bir palet dizini olduğu renk türünü temsil eder 
                ColorType = FileFormats.Png.PngColorType.IndexedColor,
            // Maksimum sıkıştırmayı ayarlamak için CompressionLevel değerini atayın 
                CompressionLevel = 9,
            // GetCloseImagePalette yöntemi, görüntüde bir tane olmaması durumunda raster görüntüden renk paleti alır (görüntüyü paletler). Paletin mevcut olması durumunda hesaplamaların yapılması yerine kullanılacaktır. 
                Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram)
            });
        }

Görüntü sıkıştırma API’si - gelişmiş seçenekler

Önceki bölümde C# kullanarak PNG dosya boyutunun nasıl küçültüleceğini öğrendik. Şimdi bu görüntü sıkıştırma API’sinin öne çıkan diğer bazı yöntemlerini ve özelliklerini inceleyelim. Bu bölümde programlı olarak PNG dosyası oluşturmak için özel bir API çağrısı yapacağız.

Aşağıda belirtilen adımları ve kod parçasını takip edebilirsiniz:

  1. 100x100 piksel boyutunda bir PNG görüntüsü oluşturan PngImage sınıfının bir örneğini başlatın.
  2. LinearGradientBrush yöntemi, bir Fırçayı doğrusal bir degradeyle kapsüller.
  3. Belirtilen koordinatlarla Point yapısının yeni bir örneğini başlatır.
  4. Geçerli derlemede kullanılan grafik motoruna göre grafikleri temsil eden Graphics sınıfının bir örneğini oluşturun.
  5. Görüntüyü FillRectangle yöntemiyle mavi-şeffaf degradeyle doldurun.
  6. PngOptions sınıfının bir nesnesini oluşturun.
  7. Bu PngOptions’ın aşamalı olup olmadığını gösteren Progressive özelliğinin değerini ayarlayın.
  8. ResolutionSetting sınıfını başlatarak yatay ve dikey çözünürlüğü inç başına 96 piksele ayarlayabilirsiniz.
  9. ColorType özelliğine bir değer atayarak renk türünü ayarlayın.
  10. Maksimum sıkıştırma düzeyini ayarlamak için CompressionLevel özelliğine bir değer atayın.
  11. FilterType özelliği, PNG dosyası kaydetme işlemi sırasında kullanılan filtre türünü ayarlar.
  12. BitDepth özelliğine bir değer atayarak kanal başına bit sayısını ayarlayın.
  13. Save yöntemini çağırarak bir dosyaya kaydedin.

    // 100x100 piksel boyutunda bir PNG görüntüsü oluşturan PngImage sınıfının bir örneğini başlatın. 
    using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
    {
        // LinearGradientBrush yöntemi, bir Brush'ı doğrusal degradeyle kapsüller 
        Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
                // Belirtilen koordinatlarla Point yapısının yeni bir örneğini başlatır. 
                new Aspose.Imaging.Point(0, 0),
                new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
                Aspose.Imaging.Color.Blue,
                Aspose.Imaging.Color.Transparent);
        // Geçerli derlemede kullanılan grafik motoruna göre grafikleri temsil eden Graphics sınıfının bir örneğini başlatın.
        Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

        // Görüntüyü FillRectangle yöntemiyle mavi-şeffaf degradeyle doldurun. 
        graphics.FillRectangle(gradientBrush, pngImage.Bounds);
        // PngOptions sınıfının bir nesnesini oluşturun 
        Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();

        // bu PngOptions'ın aşamalı olup olmadığını gösteren Progressive özelliğinin değerini ayarlar. 
        saveOptions.Progressive = true;

        // ÇözünürlükSetting sınıfını başlatarak yatay ve dikey çözünürlüğü inç başına 96 piksele ayarlayın. 
        saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

        // ColorType özelliğine bir değer atayarak rengin türünü ayarlayın.
        saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

        // Maksimum sıkıştırma düzeyini ayarlamak için CompressionLevel özelliğine bir değer atayın. 
        saveOptions.CompressionLevel = 9;

        // FilterType özelliği, png dosyası kaydetme işlemi sırasında kullanılan filtre türünü ayarlar.
        saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;

        // BitDepth özelliğine bir değer atayarak kanal başına bit sayısını ayarlayın.
        saveOptions.BitDepth = 8;

        // Kaydet yöntemini çağırarak bir dosyaya kaydedin. 
        pngImage.Save( "output.png", saveOptions);
    }

Çıktıyı aşağıdaki resimde görebilirsiniz:

görüntü sıkıştırma API'si

Ücretsiz Lisans Alın

API’yi değerlendirme sınırlamaları olmaksızın denemek için ücretsiz geçici lisans alabilirsiniz.

Özetliyor

Bu blog yazısını burada sonlandırabiliriz. PNG dosya boyutunu C# kullanarak programlı olarak nasıl küçülteceğinizi öğrendiğinizi umuyoruz. Ek olarak, optimize edilmiş bir PNG dosyası oluşturduğumuz bu görüntü sıkıştırma API’sinin diğer bazı gelişmiş yöntemlerini de inceledik. Ancak PNG dosya formatıyla ilgili daha fazla yöntem ve özellik için burayı bağlantı ziyaret edebilirsiniz. Her şeyden önce ekosistemi tanımak için bu .NET kütüphanesinin belgelerini atlamayın. Gelecek blog yazılarımızda başka faydalı konulara da değineceğiz. Bu nedenle güncellemeler için conholdate.com ile iletişim halinde kalın.

Bir soru sor

Sorularınızı veya sorularınızı forumumuzda bize bildirebilirsiniz.

SSS

C# dilinde PNG görüntüsü nasıl sıkıştırılır?

PNG dosya formatlarını sıkıştırmak ve değiştirmek için bu .NET görüntü sıkıştırma API’sini yükleyin. JPEG, TIFF ve daha fazlası gibi diğer popüler görüntü dosyası formatlarını sıkıştırmak için yöntemler ve özellikler sunar.

PNG formatı için resim dosyası boyutu nasıl en aza indirilir?

Bu yöntem, C# kullanarak programlı olarak PNG dosya boyutunu azaltmanıza olanak tanır. Ayrıca API çağrısını ihtiyaçlarınıza göre yapılandırabilirsiniz.

C# kod örneğinde PNG görüntüsü nasıl yeniden boyutlandırılır?

PNG görüntüsünü programlı olarak yeniden boyutlandıran kod pasajı hakkında bilgi edinmek için bunu bağlantı izleyin. Bu .NET API güçlüdür ve çok çeşitli yöntemler ve özellikler sunar.

Ayrıca bakınız