MaxDiff

GifOptions.MaxDiff property

Hämtar eller ställer in den maximala tillåtna pixelskillnaden. Om den är större än noll kommer förlustkomprimering att användas. Rekommenderat värde för optimal förlustkomprimering är 80. 30 är mycket lätt komprimering, 200 är tung. Det fungerar bäst när endast liten förlust introduceras, och på grund av begränsning av komprimeringsalgoritmen mycket höga förlustnivåer ger inte lika mycket förstärkning. Intervallet för tillåtna värden är [0, 1000].

public int MaxDiff { get; set; }

Exempel

Det här exemplet visar hur man sparar en BMP-bild i GIF-format med hjälp av olika alternativ.

[C#]

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

using (Aspose.Imaging.Image bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(1000, 1000))
{
    // Fyll hela bilden med den blå-gula gradienten.
    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();

    // Antalet bitar som krävs för att lagra en färg, minus 1.
    saveOptions.ColorResolution = 7;

    // Palettkorrigering innebär att när bilden exporteras till GIF kommer källbildens färger att analyseras
    // för att bygga den bäst matchande paletten (om bildpaletten inte finns eller inte anges i alternativen)
    saveOptions.DoPaletteCorrection = true;

    // Ladda en GIF-bild på ett progressivt sätt.
    // En sammanflätad GIF visar inte sina skanningslinjer linjärt uppifrån och ned, utan ordnar om den istället
    // så att innehållet i GIF:en blir tydligt redan innan den har laddats klart.
    saveOptions.Interlaced = true;

    // Spara som en förlustfri GIF.
    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);
    }

    // Ställ in den maximala tillåtna pixelskillnaden. Om den är större än noll kommer förlustbringande komprimering att användas.
    // Det rekommenderade värdet för optimal förlustkompression är 80. 30 är mycket lätt kompression, 200 är tung.
    saveOptions.MaxDiff = 80;

    // Spara som en förlorad GIF.
    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);
    }
}

//Utgången kan se ut så här:
//Storleken på den förlustfria GIF:en: 212816 byte.
//Storleken på den förlorade GIF:en: 89726 byte.

Se även