MaxDiff

GifOptions.MaxDiff property

İzin verilen maksimum piksel farkını alır veya ayarlar. Sıfırdan büyükse kayıplı sıkıştırma kullanılacaktır. Optimum kayıplı sıkıştırma için önerilen değer 80’dir. 30 çok hafif sıkıştırma, 200 ağırdır. Sıkıştırma algoritmasının sınırlandırılması nedeniyle en iyi sonucu verir. çok yüksek kayıp seviyeleri o kadar kazanç sağlamaz. İzin verilen değerler aralığı [0, 1000]‘dir.

public int MaxDiff { get; set; }

Örnekler

Bu örnek, çeşitli seçenekler kullanılarak bir BMP görüntüsünün GIF formatına nasıl kaydedileceğini gösterir.

[C#]

string dir = "c:\\temp\\";

using (Aspose.Imaging.Image bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(1000, 1000))
{
    // Resmin tamamını mavi-sarı gradyanla doldurun.
    Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
            new Aspose.Imaging.Point(0, 0),
            new Aspose.Imaging.Point(bmpImage.Width, bmpImage.Height),
            Aspose.Imaging.Color.Blue,
            Aspose.Imaging.Color.Yellow);

    Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(bmpImage);
    graphics.FillRectangle(gradientBrush, bmpImage.Bounds);

    Aspose.Imaging.ImageOptions.GifOptions saveOptions = new Aspose.Imaging.ImageOptions.GifOptions();

    // Bir rengi saklamak için gereken bit sayısı, eksi 1.
    saveOptions.ColorResolution = 7;

    // Palet düzeltme, görüntü GIF'e aktarıldığında kaynak görüntü renklerinin analiz edileceği anlamına gelir
    // en uygun paleti oluşturmak için (resim Paletinin olmaması veya seçeneklerde belirtilmemesi durumunda)
    saveOptions.DoPaletteCorrection = true;

    // Bir GIF görüntüsünü aşamalı olarak yükleyin.
    // Geçmeli GIF, tarama çizgilerini yukarıdan aşağıya doğrusal olarak göstermez, bunun yerine yeniden düzenler
    // böylece GIF'in içeriği daha yükleme bitmeden netleşir.
    saveOptions.Interlaced = true;

    // Kayıpsız bir GIF olarak kaydedin.
    using (System.IO.Stream stream = System.IO.File.OpenWrite(dir + "output.gif"))
    {
        bmpImage.Save(stream, saveOptions);
        System.Console.WriteLine("The size of the lossless GIF: {0} bytes.", stream.Length);
    }

    // İzin verilen maksimum piksel farkını ayarlayın. Sıfırdan büyükse, kayıplı sıkıştırma kullanılacaktır.
    // Optimum kayıplı sıkıştırma için önerilen değer 80'dir. 30 çok hafif sıkıştırma, 200 ağırdır.
    saveOptions.MaxDiff = 80;

    // Kayıplı bir GIF olarak kaydedin.
    using (System.IO.Stream stream = System.IO.File.OpenWrite(dir + "output.lossy.gif"))
    {
        bmpImage.Save(stream, saveOptions);
        System.Console.WriteLine("The size of the lossy GIF: {0} bytes.", stream.Length);
    }
}

// Çıktı şöyle görünebilir:
//Kayıpsız GIF'in boyutu: 212816 bayt.
//Kayıplı GIF'in boyutu: 89726 bayt.

Ayrıca bakınız