GetCloseImagePalette

GetCloseImagePalette(RasterImage, int)

Hämtar färgpalett från rasterbild (palleterar bild) om bilden inte har någon. Om palett finns kommer den att användas istället för att utföra beräkningar.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
ParameterTypBeskrivning
imageRasterImageRasterbilden.
entriesCountInt32De önskade posterna räknas.

Returvärde

Färgpaletten som börjar med de vanligaste färgerna frånimage och innehållerentriesCount poster.

Exempel

Följande exempel laddar en BMP-bild och sparar den tillbaka till BMP med hjälp av olika sparalternativ.

[C#]

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

using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
{
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;

    // Skapa BmpOptions
    Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();

    // Använd 8 bitar per pixel för att minska storleken på utdatabilden.
    saveOptions.BitsPerPixel = 8;

    // Ställ in den närmaste 8-bitars färgpalett som täcker det maximala antalet bildpixlar, så att en palettiserad bild
    // är nästan visuellt omöjlig att skilja från en icke-palletiserad.
    saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);

    // Spara utan komprimering.
    // Du kan också använda RLE-8-komprimering för att minska storleken på den utgående bilden.
    saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;

    // Ställ in den horisontella och vertikala upplösningen till 96 dpi.
    saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

    image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}

Följande exempel visar hur man palleterar en BMP-bild för att minska dess utdatastorlek.

[C#]

// Skapa en BMP-bild 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
    // Den linjära gradienten från bildens övre vänstra hörn till det nedre högra hörnet.
    Aspose.Imaging.Brushes.LinearGradientBrush brush =
        new Aspose.Imaging.Brushes.LinearGradientBrush(
            new Aspose.Imaging.Point(0, 0),
            new Aspose.Imaging.Point(bmpImage.Width, bmpImage.Height),
            Aspose.Imaging.Color.Red,
            Aspose.Imaging.Color.Green);

    // Fyll hela bilden med den linjära gradientpenseln.
    Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
    gr.FillRectangle(brush, bmpImage.Bounds);

    // Få den närmaste 8-bitars färgpalett som täcker så många pixlar som möjligt, så att en palettiserad bild
    // är nästan visuellt omöjlig att skilja från en icke-palletiserad.
    Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);

    // 8-bitars palett innehåller högst 256 färger.
    Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
    saveOptions.Palette = palette;
    saveOptions.BitsPerPixel = 8;

    using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
    {
        bmpImage.Save(stream, saveOptions);
        System.Console.WriteLine("The palettized image size is {0} bytes.", stream.Length);
    }

    using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
    {
        bmpImage.Save(stream);
        System.Console.WriteLine("The non-palettized image size is {0} bytes.", stream.Length);
    }
}

// Utgången ser ut så här:
// Den palettiserade bildstorleken är 11078 byte.
// Den icke-palettiserade bildstorleken är 40054 byte.

Se även


GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)

Hämtar färgpalett från rasterbild (palleterar bild) om bilden inte har någon. Palette är på väg att optimeras för bättre indexerad bildkvalitet eller tas “AS IS” när PaletteMiningMethod.UseCurrentPalette används.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, 
    PaletteMiningMethod paletteMiningMethod)
ParameterTypBeskrivning
imageRasterImageRasterbilden.
entriesCountInt32De önskade posterna räknas.
paletteMiningMethodPaletteMiningMethodPalettbrytningsmetoden.

Returvärde

Färgpaletten som börjar med de vanligaste färgerna frånimage och innehållerentriesCount poster.

Exempel

Följande exempel visar hur man komprimerar en PNG-bild med hjälp av indexerad färg med palett som passar bäst

[C#]

// Laddar png-bild        
    string  sourceFilePath="OriginalRings.png";
    string  outputFilePath="OriginalRingsOutput.png";
    using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(sourceFilePath))
{
    image.Save(outputFilePath, new Aspose.Imaging.ImageOptions.PngOptions()
    {
         Progressive = true,
             // Använd indexerad färgtyp
         ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
             // Använd maximal komprimering
         CompressionLevel = 9,
      // Få den närmaste 8-bitars färgpalett som täcker så många pixlar som möjligt, så att en palettiserad bild
         // är nästan visuellt omöjlig att skilja från en icke-palletiserad.
         Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
    });
}
    // Utdatafilens storlek bör minskas avsevärt

Se även


GetCloseImagePalette(RasterImage, Rectangle, int)

Hämtar färgpalett från rasterbild (palleterar bild) om bilden inte har någon. Om palett finns kommer den att användas istället för att utföra beräkningar.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount)
ParameterTypBeskrivning
imageRasterImageRasterbilden.
destBoundsRectangleMålbilden gränsar.
entriesCountInt32De önskade posterna räknas.

Returvärde

Färgpaletten som börjar med de vanligaste färgerna frånimage och innehållerentriesCount poster.

Se även


GetCloseImagePalette(RasterImage, Rectangle, int, bool)

Hämtar färgpalett från rasterbild (palleterar bild) om bilden inte har någon. Om palett finns kommer den att användas istället för att utföra beräkningar.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette)
ParameterTypBeskrivning
imageRasterImageRasterbilden.
destBoundsRectangleMålbilden gränsar.
entriesCountInt32De önskade posterna räknas.
useImagePaletteBooleanOm den är inställd kommer den att använda sin egen bildpalett om tillgänglig

Returvärde

Färgpaletten som börjar med de vanligaste färgerna frånimage och innehållerentriesCount poster.

Se även


GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)

Hämtar färgpalett från rasterbild (palleterar bild) om bilden inte har någon. Om palett finns kommer den att användas istället för att utföra beräkningar.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette, Color alphaBlendInColor)
ParameterTypBeskrivning
imageRasterImageRasterbilden.
destBoundsRectangleMålbilden gränsar.
entriesCountInt32De önskade posterna räknas.
useImagePaletteBooleanOm den är inställd kommer den att använda sin egen bildpalett om tillgänglig
alphaBlendInColorColorFärgen som ska användas som bakgrundsfärg för halvtransparent alfaersättning.

Returvärde

Färgpaletten som börjar med de vanligaste färgerna frånimage och innehållerentriesCount poster.

Se även