GetCloseImagePalette

GetCloseImagePalette(RasterImage, int)

Ottiene la tavolozza dei colori dall’immagine raster (pallettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso esista una tavolozza, verrà utilizzata al posto dell’esecuzione dei calcoli.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
ParametroTipoDescrizione
imageRasterImageL’immagine raster.
entriesCountInt32Le voci desiderate contano.

Valore di ritorno

La tavolozza dei colori che inizia con i colori più frequenti delimage e contieneentriesCount voci.

Esempi

L’esempio seguente carica un’immagine BMP e la salva di nuovo in BMP utilizzando varie opzioni di salvataggio.

[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;

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

    // Usa 8 bit per pixel per ridurre le dimensioni dell'immagine di output.
    saveOptions.BitsPerPixel = 8;

    // Imposta la tavolozza dei colori a 8 bit più vicina che copre il numero massimo di pixel dell'immagine, in modo che un'immagine
    // è quasi visivamente indistinguibile da uno non pallettizzato.
    saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);

    // Salva senza compressione.
    // Puoi anche usare la compressione RLE-8 per ridurre le dimensioni dell'immagine di output.
    saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;

    // Imposta la risoluzione orizzontale e verticale su 96 dpi.
    saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

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

L’esempio seguente mostra come pallettizzare un’immagine BMP per ridurne le dimensioni di output.

[C#]

// Crea un'immagine BMP 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
    // Il gradiente lineare dall'angolo in alto a sinistra all'angolo in basso a destra dell'immagine.
    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);

    // Riempi l'intera immagine con il pennello gradiente lineare.
    Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
    gr.FillRectangle(brush, bmpImage.Bounds);

    // Ottieni la tavolozza dei colori a 8 bit più vicina che copre il maggior numero di pixel possibile, in modo che un'immagine palettizzata
    // è quasi visivamente indistinguibile da uno non pallettizzato.
    Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);

    // La tavolozza a 8 bit contiene al massimo 256 colori.
    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);
    }
}

// L'output è simile a questo:
// La dimensione dell'immagine pallettizzata è 11078 byte.
// La dimensione dell'immagine non palettizzata è 40054 byte.

Guarda anche


GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)

Ottiene la tavolozza dei colori dall’immagine raster (pallettizza l’immagine) nel caso in cui l’immagine non ne abbia una. La tavolozza sta per essere ottimizzata per una migliore qualità dell’immagine indicizzata o presa “COSÌ COM’È” quando viene utilizzato PaletteMiningMethod.UseCurrentPalette.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, 
    PaletteMiningMethod paletteMiningMethod)
ParametroTipoDescrizione
imageRasterImageL’immagine raster.
entriesCountInt32Le voci desiderate contano.
paletteMiningMethodPaletteMiningMethodIl metodo di estrazione della tavolozza.

Valore di ritorno

La tavolozza dei colori che inizia con i colori più frequenti delimage e contieneentriesCount voci.

Esempi

L’esempio seguente mostra come comprimere un’immagine PNG, utilizzando il colore indicizzato con la tavolozza più adatta

[C#]

// Carica l'immagine png        
    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,
             // Usa il tipo di colore indicizzato
         ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
             // Usa la compressione massima
         CompressionLevel = 9,
      // Ottieni la tavolozza dei colori a 8 bit più vicina che copre il maggior numero di pixel possibile, in modo che un'immagine palettizzata
         // è quasi visivamente indistinguibile da uno non pallettizzato.
         Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
    });
}
    // La dimensione del file di output dovrebbe essere notevolmente ridotta

Guarda anche


GetCloseImagePalette(RasterImage, Rectangle, int)

Ottiene la tavolozza dei colori dall’immagine raster (pallettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso esista una tavolozza, verrà utilizzata al posto dell’esecuzione dei calcoli.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount)
ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleL’immagine di destinazione delimita.
entriesCountInt32Le voci desiderate contano.

Valore di ritorno

La tavolozza dei colori che inizia con i colori più frequenti delimage e contieneentriesCount voci.

Guarda anche


GetCloseImagePalette(RasterImage, Rectangle, int, bool)

Ottiene la tavolozza dei colori dall’immagine raster (pallettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso esista una tavolozza, verrà utilizzata al posto dell’esecuzione dei calcoli.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette)
ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleL’immagine di destinazione delimita.
entriesCountInt32Le voci desiderate contano.
useImagePaletteBooleanSe impostato, utilizzerà la propria tavolozza di immagini, se disponibile

Valore di ritorno

La tavolozza dei colori che inizia con i colori più frequenti delimage e contieneentriesCount voci.

Guarda anche


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

Ottiene la tavolozza dei colori dall’immagine raster (pallettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso esista una tavolozza, verrà utilizzata al posto dell’esecuzione dei calcoli.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette, Color alphaBlendInColor)
ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleL’immagine di destinazione delimita.
entriesCountInt32Le voci desiderate contano.
useImagePaletteBooleanSe impostato, utilizzerà la propria tavolozza di immagini, se disponibile
alphaBlendInColorColorIl colore da utilizzare come colore di sfondo per la sostituzione alfa semitrasparente.

Valore di ritorno

La tavolozza dei colori che inizia con i colori più frequenti delimage e contieneentriesCount voci.

Guarda anche