Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Hilfsklasse zur Manipulation von Farbpalletten.
public static class ColorPaletteHelper
Vererbung
Vererbte Mitglieder
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Methoden
Create4Bit()
Erstellt die 4-Bit-Farbpalette.
public static IColorPalette Create4Bit()
Gibt zurück
Die 4-Bit-Farbpalette.
Create4BitGrayscale(bool)
Erstellt die 4-Bit-Graustufenpalette.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parameter
minIsWhite
bool
Wenn auf ```cstrue gesetzt, beginnt die Palette mit der weißen Farbe, andernfalls beginnt sie mit der schwarzen Farbe.
Gibt zurück
Die 4-Bit-Graustufenpalette.
Create8Bit()
Erstellt die 8-Bit-Farbpalette.
public static IColorPalette Create8Bit()
Gibt zurück
Die 8-Bit-Farbpalette.
Create8BitGrayscale(bool)
Erstellt die 8-Bit-Graustufenpalette.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parameter
minIsWhite
bool
Wenn auf ```cstrue gesetzt, beginnt die Palette mit der weißen Farbe, andernfalls beginnt sie mit der schwarzen Farbe.
Gibt zurück
Die 8-Bit-Graustufenpalette.
Beispiele
Das folgende Beispiel erstellt ein palettisiertes Graustufen-BMP-Bild und speichert es dann in eine Datei.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// In eine Datei speichern
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Verwenden Sie 8 Bit pro Pixel, um die Größe des Ausgabebilds zu reduzieren.
createOptions.BitsPerPixel = 8;
// Setzen Sie die standardmäßige 8-Bit-Graustufenfarbpalette, die alle Graustufenfarben abdeckt.
// Wenn das verarbeitete Bild nur Graustufenfarben enthält, dann ist seine palettisierte Version
// visuell nicht von einer nicht-palletisierten zu unterscheiden.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Ohne Kompression speichern.
// Sie können auch RLE-8-Kompression verwenden, um die Größe des Ausgabebilds zu reduzieren.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Setzen Sie die horizontale und vertikale Auflösung auf 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Erstellen Sie ein BMP-Bild von 100 x 100 px und speichern Sie es in eine Datei.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, 100, 100))
{
Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
new Aspose.Imaging.Point(0, 0),
new Aspose.Imaging.Point(image.Width, image.Height),
Aspose.Imaging.Color.Black,
Aspose.Imaging.Color.White);
// Füllen Sie das Bild mit einem Graustufenverlauf
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Erhält die Graustufenpalette mit der angegebenen Bitanzahl. Zulässige Bitwerte sind 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parameter
bits
int
Die Bitanzahl.
Gibt zurück
Graustufenpalette.
Ausnahmen
bits
CreateMonochrome()
Erstellt eine monochrome Farbpalette, die nur 2 Farben enthält.
public static IColorPalette CreateMonochrome()
Gibt zurück
Farbpalette für monochrome Bilder.
GetCloseImagePalette(RasterImage, int)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parameter
image
RasterImage
Das Rasterbild.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
Beispiele
Das folgende Beispiel lädt ein BMP-Bild und speichert es mit verschiedenen Speicheroptionen zurück.```csharp [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;
// Erstellen Sie BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Verwenden Sie 8 Bit pro Pixel, um die Größe des Ausgabebilds zu reduzieren.
saveOptions.BitsPerPixel = 8;
// Setzen Sie die nächstgelegene 8-Bit-Farbpalette, die die maximale Anzahl von Bildpixeln abdeckt, sodass ein palettisiertes Bild
// visuell nicht von einem nicht-palletisierten zu unterscheiden ist.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Ohne Kompression speichern.
// Sie können auch RLE-8-Kompression verwenden, um die Größe des Ausgabebilds zu reduzieren.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Setzen Sie die horizontale und vertikale Auflösung auf 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Das folgende Beispiel zeigt, wie man ein BMP-Bild palettisiert, um die Ausgabedateigröße zu reduzieren.```csharp
[C#]
// Erstellen Sie ein BMP-Bild 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Der lineare Verlauf von der linken oberen Ecke zur rechten unteren Ecke des Bildes.
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);
// Füllen Sie das gesamte Bild mit dem linearen Verlaufspinsel.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Erhalten Sie die nächstgelegene 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein palettisiertes Bild
// visuell nicht von einem nicht-palletisierten zu unterscheiden ist.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// Die 8-Bit-Palette enthält maximal 256 Farben.
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("Die Größe des palettisierten Bildes beträgt {0} Bytes.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("Die Größe des nicht-palletisierten Bildes beträgt {0} Bytes.", stream.Length);
}
}
// Die Ausgabe sieht so aus:
// Die Größe des palettisierten Bildes beträgt 11078 Bytes.
// Die Größe des nicht-palletisierten Bildes beträgt 40054 Bytes.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Die Palette wird optimiert, um die Bildqualität der indizierten Bilder zu verbessern oder “AS IS” übernommen, wenn PaletteMiningMethod.UseCurrentPalette verwendet wird.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parameter
image
RasterImage
Das Rasterbild.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
paletteMiningMethod
PaletteMiningMethod
Die Methode zur Palettengewinnung.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
Beispiele
Das folgende Beispiel zeigt, wie man ein PNG-Bild komprimiert, indem man indizierte Farben mit der besten passenden Palette verwendet.```csharp [C#]
// Lädt 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,
// Verwenden Sie den indizierten Farbtyp
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Maximale Kompression verwenden
CompressionLevel = 9,
// Erhalten Sie die nächstgelegene 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein palettisiertes Bild
// visuell nicht von einem nicht-palletisierten zu unterscheiden ist.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// Die Ausgabedateigröße sollte erheblich reduziert werden
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parameter
image
RasterImage
Das Rasterbild.
destBounds
Rectangle
Die Zielbildgrenzen.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parameter
image
RasterImage
Das Rasterbild.
destBounds
Rectangle
Die Zielbildgrenzen.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
useImagePalette
bool
Wenn gesetzt, wird die eigene Bildpalette verwendet, sofern verfügbar.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parameter
image
RasterImage
Das Rasterbild.
destBounds
Rectangle
Die Zielbildgrenzen.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
useImagePalette
bool
Wenn gesetzt, wird die eigene Bildpalette verwendet, sofern verfügbar.
alphaBlendInColor
Color
Die Farbe, die als Hintergrundfarbe für die semi-transparente Alpha-Ersetzung verwendet werden soll.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parameter
image
RasterImage
Das Rasterbild.
destBounds
Rectangle
Die Zielbildgrenzen.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
useImagePalette
bool
Wenn gesetzt, wird die eigene Bildpalette verwendet, sofern verfügbar.
alphaBlendInColor
Color
Die Farbe, die als Hintergrundfarbe für die semi-transparente Alpha-Ersetzung verwendet werden soll.
keepTransparency
bool
Wenn gesetzt, werden die Alpha-Kanalbits der Bildfarben berücksichtigt.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
GetCloseTransparentImagePalette(RasterImage, int)
Erhält die Farbpalette aus einem Rasterbild (palettisiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird diese verwendet, anstatt Berechnungen durchzuführen.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parameter
image
RasterImage
Das Rasterbild.
entriesCount
int
Die gewünschte Anzahl von Einträgen.
Gibt zurück
Die Farbpalette, die mit den häufigsten Farben aus dem image
beginnt und entriesCount
Einträge enthält.
GetDownscalePalette(RasterImage)
Erhält eine 256-Farben-Palette, die aus den oberen Bits der ursprünglichen Farbwerte des Bildes besteht.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parameter
image
RasterImage
Das Bild.
Gibt zurück
Die Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Erhält eine einheitliche 256-Farben-Palette.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parameter
image
RasterImage
Das Bild.
Gibt zurück
Die Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Bestimmt, ob die angegebene Palette transparente Farben hat.
public static bool HasTransparentColors(IColorPalette palette)
Parameter
palette
IColorPalette
Die Palette.
Gibt zurück
cstrue</code>, wenn die angegebene Palette transparente Farben hat; andernfalls
csfalse.
Ausnahmen
palette
ist null.