ColorPaletteHelper

Inheritance: java.lang.Object

public final class ColorPaletteHelper

Hilfsklasse zur Manipulation von Farbpaletten.

Methoden

MethodeBeschreibung
createMonochrome()Erstellt eine monochrome Farbpalette, die nur 2 Farben enthält.
create4Bit()Erstellt die 4‑Bit‑Farbpalette.
create4BitGrayscale(boolean minIsWhite)Erstellt die 4‑Bit‑Graustufenpalette.
create8Bit()Erstellt die 8‑Bit‑Farbpalette.
create8BitGrayscale(boolean minIsWhite)Erstellt die 8‑Bit‑Graustufenpalette.
getCloseImagePalette(RasterImage image, int entriesCount)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseTransparentImagePalette(RasterImage image, int entriesCount)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseImagePalette(RasterImage image, int entriesCount, int paletteMiningMethod)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, boolean useImagePalette, Color alphaBlendInColor, boolean keepTransparency)Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat.
getUniformColorPalette(RasterImage image)Erhalte eine einheitliche 256‑Farben‑Palette.
getDownscalePalette(RasterImage image)Erhalte eine 256‑Farben‑Palette, die aus den oberen Bits der ursprünglichen Bildfarbwerte besteht.
hasTransparentColors(IColorPalette palette)Bestimmt, ob die angegebene Palette transparente Farben enthält.
createGrayscale(int bits)Ermittelt die Graustufenpalette der angegebenen Bitanzahl.

createMonochrome()

public static IColorPalette createMonochrome()

Erstellt eine monochrome Farbpalette, die nur 2 Farben enthält.

Returns: IColorPalette - Color palette for monochrome images.

create4Bit()

public static IColorPalette create4Bit()

Erstellt die 4‑Bit‑Farbpalette.

Returns: IColorPalette - The 4 bit color palette.

create4BitGrayscale(boolean minIsWhite)

public static IColorPalette create4BitGrayscale(boolean minIsWhite)

Erstellt die 4‑Bit‑Graustufenpalette.

Parameters:

ParameterTypBeschreibung
minIsWhitebooleanWenn auf true gesetzt, beginnt die Palette mit Weiß, andernfalls beginnt sie mit Schwarz.

Returns: IColorPalette - The 4 bit grayscale palette.

create8Bit()

public static IColorPalette create8Bit()

Erstellt die 8‑Bit‑Farbpalette.

Returns: IColorPalette - The 8bit color palette.

create8BitGrayscale(boolean minIsWhite)

public static IColorPalette create8BitGrayscale(boolean minIsWhite)

Erstellt die 8‑Bit‑Graustufenpalette.

Parameters:

ParameterTypBeschreibung
minIsWhitebooleanWenn auf true gesetzt, beginnt die Palette mit Weiß, andernfalls beginnt sie mit Schwarz.

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();

// In einer Datei speichern.
createOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dir + "output.palette8bit.bmp", false));

// Verwende 8 Bit pro Pixel, um die Größe des Ausgabebildes zu reduzieren.
createOptions.setBitsPerPixel(8);

// Setze die Standard‑8‑Bit‑Graustufen‑Farbpalette, die alle Graustufen abdeckt.
// Wenn das verarbeitete Bild nur Graustufen enthält, dann ist seine palettisierte Version
// visuell nicht von einer nicht palettisierten zu unterscheiden.
createOptions.setPalette(com.aspose.imaging.ColorPaletteHelper.create8BitGrayscale(false));

// Ohne Kompression speichern.
// Sie können auch RLE‑8‑Kompression verwenden, um die Größe des Ausgabebildes zu reduzieren.
createOptions.setCompression(com.aspose.imaging.fileformats.bmp.BitmapCompression.Rgb);

// Setze die horizontale und vertikale Auflösung auf 96 dpi.
createOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));

// Erstelle ein BMP‑Bild von 100 × 100 px und speichere es in einer Datei.
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());

    // Fülle das Bild mit einem Graustufen‑Verlauf
    graphics.fillRectangle(gradientBrush, image.getBounds());

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

getCloseImagePalette(RasterImage image, int entriesCount)

public static IColorPalette getCloseImagePalette(RasterImage image, int entriesCount)

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
entriesCountintDie gewünschte Eintragsanzahl.

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.


// Erstelle ein BMP-Bild mit 100 x 100 px.
com.aspose.imaging.fileformats.bmp.BmpImage bmpImage = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
try {
    // Der lineare Farbverlauf von der linken oberen zur rechten unteren Ecke des Bildes.
    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());

    // Fülle das gesamte Bild mit dem linearen Farbverlaufs-Pinsel.
    com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(bmpImage);
    gr.fillRectangle(brush, bmpImage.getBounds());

    // Erhalte die nächstgelegene 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein palettisiertes Bild
    // fast visuell nicht von einem nicht palettierten Bild zu unterscheiden ist.
    com.aspose.imaging.IColorPalette palette = com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette(bmpImage, 256);

    // Eine 8-Bit-Palette enthält höchstens 256 Farben.
    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();
}

// Die Ausgabe sieht folgendermaßen aus:
// Die palettierte Bildgröße beträgt 11078 Bytes.
// Die nicht-palettierte Bildgröße beträgt 40054 Bytes.

getCloseTransparentImagePalette(RasterImage image, int entriesCount)

public static IColorPalette getCloseTransparentImagePalette(RasterImage image, int entriesCount)

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
entriesCountintDie gewünschte Eintragsanzahl.

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)

Liest die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Die Palette wird optimiert, um eine bessere indizierte Bildqualität zu erzielen, oder wird “AS IS” übernommen, wenn PaletteMiningMethod.UseCurrentPalette verwendet wird.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
entriesCountintDie gewünschte Eintragsanzahl.
paletteMiningMethodintDie Palette-Mining-Methode.

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


// Lädt PNG-Bild
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);
    // Indizierten Farbtyp verwenden
    options.setColorType(com.aspose.imaging.fileformats.png.PngColorType.IndexedColor);
    // Maximale Kompression verwenden
    options.setCompressionLevel(9);
    // Erhalte die nächstgelegene 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein palettisiertes Bild
    // fast visuell nicht von einem nicht palettierten Bild zu unterscheiden ist.
    options.setPalette(com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette((com.aspose.imaging.RasterImage)image, 
                                256, Aspose.Imaging.PaletteMiningMethod.Histogram));
                     
    image.save(outputFilePath, options);
}
// Die Größe der Ausgabedatei sollte deutlich reduziert werden

getCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)

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

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Grenzen des Zielbildes.
entriesCountintDie gewünschte Eintragsanzahl.

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)

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Grenzen des Zielbildes.
entriesCountintDie gewünschte Eintragsanzahl.
useImagePalettebooleanWenn gesetzt, wird es seine eigene Bildpalette verwenden, falls verfügbar

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)

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Grenzen des Zielbildes.
entriesCountintDie gewünschte Eintragsanzahl.
useImagePalettebooleanWenn gesetzt, wird es seine eigene Bildpalette verwenden, falls verfügbar
alphaBlendInColorColorDie Farbe, die als Hintergrundfarbe für halbtransparente Alpha-Ersetzung verwendet werden soll.

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)

Ermittelt die Farbpalette aus dem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette existiert, wird sie stattdessen verwendet, anstatt Berechnungen durchzuführen.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Grenzen des Zielbildes.
entriesCountintDie gewünschte Eintragsanzahl.
useImagePalettebooleanWenn gesetzt, wird es seine eigene Bildpalette verwenden, falls verfügbar
alphaBlendInColorColorDie Farbe, die als Hintergrundfarbe für halbtransparente Alpha-Ersetzung verwendet werden soll.
keepTransparencybooleanWenn gesetzt, werden die Alpha-Kanal-Bits der Bildfarben berücksichtigt.

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)

Erhalte eine einheitliche 256‑Farben‑Palette.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Bild.

Returns: ColorPalette - The ColorPalette.

getDownscalePalette(RasterImage image)

public static ColorPalette getDownscalePalette(RasterImage image)

Erhalte eine 256‑Farben‑Palette, die aus den oberen Bits der ursprünglichen Bildfarbwerte besteht.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Bild.

Returns: ColorPalette - The ColorPalette.

hasTransparentColors(IColorPalette palette)

public static boolean hasTransparentColors(IColorPalette palette)

Bestimmt, ob die angegebene Palette transparente Farben enthält.

Parameters:

ParameterTypBeschreibung
paletteIColorPaletteDie Palette.

Returns: boolesch - true, wenn die angegebene Palette transparente Farben enthält; andernfalls false.

createGrayscale(int bits)

public static IColorPalette createGrayscale(int bits)

Liest die Graustufenpalette der angegebenen Bitanzahl. Erlaubte Bitwerte sind 1, 2, 4, 8.

Parameters:

ParameterTypBeschreibung
bitsintDie Bitanzahl.

Returns: IColorPalette - Grayscale palette.