GetCloseImagePalette

GetCloseImagePalette(RasterImage, int)

Ruft die Farbpalette vom Rasterbild ab (palettiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird sie verwendet, anstatt Berechnungen durchzuführen.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
entriesCountInt32Es zählen die gewünschten Einträge.

Rückgabewert

Die Farbpalette, die mit den häufigsten Farben aus dem beginntimage und enthältentriesCount Einträge.

Beispiele

Das folgende Beispiel lädt ein BMP-Bild und speichert es mit verschiedenen Speicheroptionen wieder in BMP.

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

    // BmpOptions erstellen
    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;

    // Legen Sie die nächste 8-Bit-Farbpalette fest, die die maximale Anzahl von Bildpixeln abdeckt, sodass ein palettisiertes Bild entsteht
    // ist optisch kaum von einem nicht palettierten zu unterscheiden.
    saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);

    // Ohne Komprimierung speichern.
    // Sie können auch die RLE-8-Komprimierung verwenden, um die Größe des Ausgabebilds zu reduzieren.
    saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;

    // Legen Sie die horizontale und vertikale Auflösung auf 96 dpi fest.
    saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

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

Das folgende Beispiel zeigt, wie ein BMP-Bild palettiert wird, um seine Ausgabegröße zu reduzieren.

[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 Farbverlauf von der linken oberen 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);

    // Holen Sie sich die nächste 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, um ein palettisiertes Bild zu erhalten
    // ist optisch kaum von einem nicht palettierten zu unterscheiden.
    Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);

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

// Die Ausgabe sieht so aus:
// Die palettierte Bildgröße beträgt 11078 Bytes.
// Die nicht palettierte Bildgröße beträgt 40054 Byte.

Siehe auch


GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)

Ruft die Farbpalette vom Rasterbild ab (palettiert das Bild), falls das Bild keine hat. Die Palette wird gerade für eine bessere indizierte Bildqualität optimiert oder “WIE BESEHEN” übernommen, wenn PaletteMiningMethod.UseCurrentPalette verwendet wird.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, 
    PaletteMiningMethod paletteMiningMethod)
ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
entriesCountInt32Es zählen die gewünschten Einträge.
paletteMiningMethodPaletteMiningMethodDie Palette-Mining-Methode.

Rückgabewert

Die Farbpalette, die mit den häufigsten Farben aus dem beginntimage und enthältentriesCount Einträge.

Beispiele

Das folgende Beispiel zeigt, wie Sie ein PNG-Bild komprimieren, indem Sie indizierte Farben mit der Palette „Best Fit“ verwenden

[C#]

// PNG-Bild wird geladen        
    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,
             // Indizierten Farbtyp verwenden
         ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
             // Maximale Komprimierung verwenden
         CompressionLevel = 9,
      // Holen Sie sich die nächste 8-Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, um ein palettisiertes Bild zu erhalten
         // ist optisch kaum von einem nicht palettierten zu unterscheiden.
         Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
    });
}
    // Die Größe der Ausgabedatei sollte erheblich reduziert werden

Siehe auch


GetCloseImagePalette(RasterImage, Rectangle, int)

Ruft die Farbpalette vom Rasterbild ab (palettiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird sie verwendet, anstatt Berechnungen durchzuführen.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount)
ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Zielbildgrenzen.
entriesCountInt32Es zählen die gewünschten Einträge.

Rückgabewert

Die Farbpalette, die mit den häufigsten Farben aus dem beginntimage und enthältentriesCount Einträge.

Siehe auch


GetCloseImagePalette(RasterImage, Rectangle, int, bool)

Ruft die Farbpalette vom Rasterbild ab (palettiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird sie verwendet, anstatt Berechnungen durchzuführen.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette)
ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Zielbildgrenzen.
entriesCountInt32Es zählen die gewünschten Einträge.
useImagePaletteBooleanWenn gesetzt, wird eine eigene Bildpalette verwendet, falls verfügbar

Rückgabewert

Die Farbpalette, die mit den häufigsten Farben aus dem beginntimage und enthältentriesCount Einträge.

Siehe auch


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

Ruft die Farbpalette vom Rasterbild ab (palettiert das Bild), falls das Bild keine hat. Falls eine Palette vorhanden ist, wird sie verwendet, anstatt Berechnungen durchzuführen.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette, Color alphaBlendInColor)
ParameterTypBeschreibung
imageRasterImageDas Rasterbild.
destBoundsRectangleDie Zielbildgrenzen.
entriesCountInt32Es zählen die gewünschten Einträge.
useImagePaletteBooleanWenn gesetzt, wird eine eigene Bildpalette verwendet, falls verfügbar
alphaBlendInColorColorDie Farbe, die als Hintergrundfarbe für den halbtransparenten Alpha-Ersatz verwendet werden soll.

Rückgabewert

Die Farbpalette, die mit den häufigsten Farben aus dem beginntimage und enthältentriesCount Einträge.

Siehe auch