DoPaletteCorrection

GifOptions.DoPaletteCorrection property

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Palettenkorrektur angewendet wird.

public bool DoPaletteCorrection { get; set; }

Eigentumswert

Stimmt wenn eine Palettenkorrektur angewendet wird; Andernfalls,FALSCH .

Bemerkungen

Palettenkorrektur bedeutet, dass jedes Mal, wenn ein Bild in GIF exportiert wird, die Quellbildfarben analysiert werden , um die am besten passende Palette zu erstellen (falls die Bildpalette nicht existiert oder nicht in den Optionen angegeben ist). Der Analyseprozess dauert jedoch einige Zeit Das Ausgabebild hat die am besten passende Farbpalette und das Ergebnis ist visuell besser.

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