MaxDiff

GifOptions.MaxDiff property

Holt oder setzt den maximal erlaubten Pixelunterschied. Wenn größer als Null, wird verlustbehaftete Komprimierung verwendet. Der empfohlene Wert für eine optimale verlustbehaftete Komprimierung ist 80. 30 ist eine sehr leichte Komprimierung, 200 ist stark. Es funktioniert am besten, wenn nur wenig Verlust eingeführt wird, und aufgrund der Beschränkung des Komprimierungsalgorithmus sehr hohe Verlustniveaus ergeben nicht so viel Gewinn. Der zulässige Wertebereich ist [0, 1000].

public int MaxDiff { get; set; }

Beispiele

Dieses Beispiel zeigt, wie Sie ein BMP-Bild mit verschiedenen Optionen im GIF-Format speichern.

[C#]

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

using (Aspose.Imaging.Image bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(1000, 1000))
{
    // Füllen Sie das gesamte Bild mit dem blau-gelben Farbverlauf.
    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();

    // Die Anzahl der Bits, die zum Speichern einer Farbe erforderlich sind, minus 1.
    saveOptions.ColorResolution = 7;

    // Palettenkorrektur bedeutet, dass beim Exportieren des Bildes in GIF die Farben des Quellbildes analysiert werden
    // um die am besten passende Palette zu erstellen (falls die Bildpalette nicht existiert oder nicht in den Optionen angegeben ist)
    saveOptions.DoPaletteCorrection = true;

    // Laden Sie ein GIF-Bild auf progressive Weise.
    // Ein Interlaced-GIF zeigt seine Scanlines nicht linear von oben nach unten an, sondern ordnet sie stattdessen neu an
    // so wird der Inhalt des GIF klar, noch bevor es vollständig geladen ist.
    saveOptions.Interlaced = true;

    // Als verlustfreies GIF speichern.
    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);
    }

    // Legen Sie die maximal zulässige Pixeldifferenz fest. Wenn es größer als Null ist, wird eine verlustbehaftete Komprimierung verwendet.
    // Der empfohlene Wert für eine optimale verlustbehaftete Komprimierung ist 80. 30 ist eine sehr leichte Komprimierung, 200 ist eine starke.
    saveOptions.MaxDiff = 80;

    // Als verlustbehaftetes GIF speichern.
    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);
    }
}

//Die Ausgabe könnte so aussehen:
//Die Größe des verlustfreien GIF: 212816 Bytes.
//Die Größe des verlustbehafteten GIF: 89726 Bytes.

Siehe auch