ColorPaletteHelper

Inheritance: java.lang.Object

public final class ColorPaletteHelper

Classe di supporto per la manipolazione della tavolozza dei colori.

Metodi

MetodoDescrizione
createMonochrome()Crea una tavolozza di colori monocromatica contenente solo 2 colori.
create4Bit()Crea la tavolozza di colori a 4 bit.
create4BitGrayscale(boolean minIsWhite)Crea la tavolozza in scala di grigi a 4 bit.
create8Bit()Crea la tavolozza di colori a 8 bit.
create8BitGrayscale(boolean minIsWhite)Crea la tavolozza in scala di grigi a 8 bit.
getCloseImagePalette(RasterImage image, int entriesCount)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseTransparentImagePalette(RasterImage image, int entriesCount)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseImagePalette(RasterImage image, int entriesCount, int paletteMiningMethod)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor, boolean keepTransparency)Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una.
getUniformColorPalette(RasterImage image)Ottieni una tavolozza uniforme di 256 colori.
getDownscalePalette(RasterImage image)Ottieni una tavolozza di 256 colori, composta dai bit più alti dei valori di colore dell’immagine iniziale.
hasTransparentColors(IColorPalette palette)Determina se la tavolozza specificata contiene colori trasparenti.
createGrayscale(int bits)Ottiene la tavolozza in scala di grigi per il numero di bit specificato.

createMonochrome()

public static IColorPalette createMonochrome()

Crea una tavolozza di colori monocromatica contenente solo 2 colori.

Returns: IColorPalette - Color palette for monochrome images.

create4Bit()

public static IColorPalette create4Bit()

Crea la tavolozza di colori a 4 bit.

Returns: IColorPalette - The 4 bit color palette.

create4BitGrayscale(boolean minIsWhite)

public static IColorPalette create4BitGrayscale(boolean minIsWhite)

Crea la tavolozza in scala di grigi a 4 bit.

Parameters:

ParametroTipoDescrizione
minIsWhitebooleanse impostato su true la tavolozza inizia con il colore bianco, altrimenti inizia con il colore nero.

Returns: IColorPalette - The 4 bit grayscale palette.

create8Bit()

public static IColorPalette create8Bit()

Crea la tavolozza di colori a 8 bit.

Returns: IColorPalette - The 8bit color palette.

create8BitGrayscale(boolean minIsWhite)

public static IColorPalette create8BitGrayscale(boolean minIsWhite)

Crea la tavolozza in scala di grigi a 8 bit.

Parameters:

ParametroTipoDescrizione
minIsWhitebooleanse impostato su true la tavolozza inizia con il colore bianco, altrimenti inizia con il colore nero.

Returns: IColorPalette - The 8 bit grayscale palette.

Example: The following example creates a palettized grayscale BMP image and then saves it to a file.

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

com.aspose.imaging.imageoptions.BmpOptions createOptions = new com.aspose.imaging.imageoptions.BmpOptions();

// Salva su un file
createOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dir + "output.palette8bit.bmp", false));

// Usa 8 bit per pixel per ridurre le dimensioni dell'immagine di output.
createOptions.setBitsPerPixel(8);

// Imposta la tavolozza di colori in scala di grigi a 8 bit standard che copre tutti i colori in scala di grigi.
// Se l'immagine elaborata contiene solo colori in scala di grigi, allora la sua versione palettizzata
// è visivamente indistinguibile da una non palettizzata.
createOptions.setPalette(com.aspose.imaging.ColorPaletteHelper.create8BitGrayscale(false));

// Salva senza compressione.
// Puoi anche usare la compressione RLE-8 per ridurre le dimensioni dell'immagine di output.
createOptions.setCompression(com.aspose.imaging.fileformats.bmp.BitmapCompression.Rgb);

// Imposta la risoluzione orizzontale e verticale a 96 dpi.
createOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));

// Crea un'immagine BMP di 100 x 100 px e salvala su un file.
com.aspose.imaging.Image image = com.aspose.imaging.Image.create(createOptions, 100, 100);
try {
    com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(image);

    com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
            new com.aspose.imaging.Point(0, 0),
            new com.aspose.imaging.Point(image.getWidth(), image.getHeight()),
            com.aspose.imaging.Color.getBlack(),
            com.aspose.imaging.Color.getWhite());

    // Riempire l'immagine con un gradiente in scala di grigi
    graphics.fillRectangle(gradientBrush, image.getBounds());

    image.save();
} finally {
    image.dispose();
}

getCloseImagePalette(RasterImage image, int entriesCount)

public static IColorPalette getCloseImagePalette(RasterImage image, int entriesCount)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
entriesCountintIl conteggio delle voci desiderato.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

Example: The following example shows how to palletize a BMP image to reduce its output size.


// Crea un'immagine BMP 100 x 100 px.
com.aspose.imaging.fileformats.bmp.BmpImage bmpImage = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
try {
    // Il gradiente lineare dall'angolo in alto a sinistra a quello in basso a destra dell'immagine.
    com.aspose.imaging.brushes.LinearGradientBrush brush =
            new com.aspose.imaging.brushes.LinearGradientBrush(
                    new com.aspose.imaging.Point(0, 0),
                    new com.aspose.imaging.Point(bmpImage.getWidth(), bmpImage.getHeight()),
                    com.aspose.imaging.Color.getRed(),
                    com.aspose.imaging.Color.getGreen());

    // Riempie l'intera immagine con il pennello a gradiente lineare.
    com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(bmpImage);
    gr.fillRectangle(brush, bmpImage.getBounds());

    // Ottieni la palette di colori a 8 bit più vicina che copra il maggior numero possibile di pixel, in modo che un'immagine paletteizzata
    // sia quasi indistinguibile visivamente da una non paletteizzata.
    com.aspose.imaging.IColorPalette palette = com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette(bmpImage, 256);

    // La palette a 8 bit contiene al massimo 256 colori.
    com.aspose.imaging.imageoptions.BmpOptions saveOptions = new com.aspose.imaging.imageoptions.BmpOptions();
    saveOptions.setPalette(palette);
    saveOptions.setBitsPerPixel(8);

    java.io.ByteArrayOutputStream stream = new java.io.ByteArrayOutputStream();
    try {
        bmpImage.save(stream, saveOptions);
        System.out.println("The palettized image size is " + stream.size() + " bytes.");
    } finally {
        stream.close();
    }

    stream = new java.io.ByteArrayOutputStream();
    try {
        bmpImage.save(stream);
        System.out.println("The non-palettized image size is " + stream.size() + " bytes.");
    } finally {
        stream.close();
    }
} finally {
    bmpImage.dispose();
}

// L'output appare così:
// La dimensione dell'immagine a palette è 11078 byte.
// La dimensione dell'immagine non a palette è 40054 byte.

getCloseTransparentImagePalette(RasterImage image, int entriesCount)

public static IColorPalette getCloseTransparentImagePalette(RasterImage image, int entriesCount)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
entriesCountintIl conteggio delle voci desiderato.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

getCloseImagePalette(RasterImage image, int entriesCount, int paletteMiningMethod)

public static IColorPalette getCloseImagePalette(RasterImage image, int entriesCount, int paletteMiningMethod)

Ottiene la tavolozza dei colori dall’immagine raster (palletizza l’immagine) nel caso in cui l’immagine non ne abbia una. La tavolozza verrà ottimizzata per una migliore qualità dell’immagine indicizzata o presa “AS IS” quando viene utilizzato PaletteMiningMethod.UseCurrentPalette.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
entriesCountintIl conteggio delle voci desiderato.
paletteMiningMethodintIl metodo di estrazione della tavolozza.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

Example: The following example shows how to compress a PNG image, using indexed color with best fit palette


// Carica immagine png        
String sourceFilePath = "OriginalRings.png";
String outputFilePath = "OriginalRingsOutput.png";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(sourceFilePath))
{
    com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
    options.setProgressive(true);
    // Usa tipo di colore indicizzato
    options.setColorType(com.aspose.imaging.fileformats.png.PngColorType.IndexedColor);
    // Usa compressione massima
    options.setCompressionLevel(9);
    // Ottieni la palette di colori a 8 bit più vicina che copra il maggior numero possibile di pixel, in modo che un'immagine paletteizzata
    // sia quasi indistinguibile visivamente da una non paletteizzata.
    options.setPalette(com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette((com.aspose.imaging.RasterImage)image, 
                                256, Aspose.Imaging.PaletteMiningMethod.Histogram));
                     
    image.save(outputFilePath, options);
}
// La dimensione del file di output dovrebbe essere notevolmente ridotta

getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)

public static IColorPalette getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleI limiti dell’immagine di destinazione.
entriesCountintIl conteggio delle voci desiderato.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette)

public static IColorPalette getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleI limiti dell’immagine di destinazione.
entriesCountintIl conteggio delle voci desiderato.
useImagePalettebooleanSe impostato, utilizzerà la propria tavolozza dell’immagine, se disponibile

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor)

public static IColorPalette getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleI limiti dell’immagine di destinazione.
entriesCountintIl conteggio delle voci desiderato.
useImagePalettebooleanSe impostato, utilizzerà la propria tavolozza dell’immagine, se disponibile
alphaBlendInColorColorIl colore da utilizzare come colore di sfondo per la sostituzione alfa semitrasparente.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor, boolean keepTransparency)

public static IColorPalette getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor, boolean keepTransparency)

Ottiene la tavolozza di colori dall’immagine raster (palettizza l’immagine) nel caso l’immagine non ne abbia una. Nel caso la tavolozza esista, verrà utilizzata invece di eseguire i calcoli.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine raster.
destBoundsRectangleI limiti dell’immagine di destinazione.
entriesCountintIl conteggio delle voci desiderato.
useImagePalettebooleanSe impostato, utilizzerà la propria tavolozza dell’immagine, se disponibile
alphaBlendInColorColorIl colore da utilizzare come colore di sfondo per la sostituzione alfa semitrasparente.
keepTransparencybooleanSe impostato, considererà i bit del canale alfa dei colori dell’immagine.

Returns: IColorPalette - The color palette which starts with the most frequent colors from the image and contains entriesCount entries.

getUniformColorPalette(RasterImage image)

public static ColorPalette getUniformColorPalette(RasterImage image)

Ottieni una tavolozza uniforme di 256 colori.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine.

Returns: ColorPalette - The ColorPalette.

getDownscalePalette(RasterImage image)

public static ColorPalette getDownscalePalette(RasterImage image)

Ottieni una tavolozza di 256 colori, composta dai bit più alti dei valori di colore dell’immagine iniziale.

Parameters:

ParametroTipoDescrizione
imageRasterImageL’immagine.

Returns: ColorPalette - The ColorPalette.

hasTransparentColors(IColorPalette palette)

public static boolean hasTransparentColors(IColorPalette palette)

Determina se la tavolozza specificata contiene colori trasparenti.

Parameters:

ParametroTipoDescrizione
paletteIColorPaletteLa tavolozza.

Returns: boolean - true se la tavolozza specificata ha colori trasparenti; altrimenti, false.

createGrayscale(int bits)

public static IColorPalette createGrayscale(int bits)

Ottiene la tavolozza in scala di grigi per il conteggio di bit specificato. I valori di bit consentiti sono 1, 2, 4, 8.

Parameters:

ParametroTipoDescrizione
bitsintIl conteggio dei bit.

Returns: IColorPalette - Grayscale palette.