Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Pomocná třída pro manipulaci s barevnými paletami.
public static class ColorPaletteHelper
Dědění
Děděné členy
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Metody
Create4Bit()
Vytvoří 4bitovou barevnou paletu.
public static IColorPalette Create4Bit()
Vrací
4bitovou barevnou paletu.
Create4BitGrayscale(bool)
Vytvoří 4bitovou odstínovou paletu.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parametry
minIsWhite
bool
Pokud je nastaveno na ```cstrue, paleta začíná bílou barvou, jinak začíná černou barvou.
Vrací
4bitovou odstínovou paletu.
Create8Bit()
Vytvoří 8bitovou barevnou paletu.
public static IColorPalette Create8Bit()
Vrací
8bitovou barevnou paletu.
Create8BitGrayscale(bool)
Vytvoří 8bitovou odstínovou paletu.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parametry
minIsWhite
bool
Pokud je nastaveno na ```cstrue, paleta začíná bílou barvou, jinak začíná černou barvou.
Vrací
8bitovou odstínovou paletu.
Příklady
Následující příklad vytváří paletizovaný odstínový BMP obrázek a poté ho ukládá do souboru.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Uložit do souboru
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Použít 8 bitů na pixel pro zmenšení velikosti výstupního obrázku.
createOptions.BitsPerPixel = 8;
// Nastavit standardní 8bitovou odstínovou barevnou paletu, která pokrývá všechny odstínové barvy.
// Pokud zpracovaný obrázek obsahuje pouze odstínové barvy, pak jeho paletizovaná verze
// je vizuálně nerozeznatelná od nepalletizované.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Uložit bez komprese.
// Můžete také použít RLE-8 kompresi pro zmenšení velikosti výstupního obrázku.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Nastavit horizontální a vertikální rozlišení na 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Vytvořit BMP obrázek o rozměrech 100 x 100 px a uložit ho do souboru.
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);
// Vyplnit obrázek odstínovým gradientem
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Získá odstínovou paletu s určeným počtem bitů. Povolené hodnoty bitů jsou 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parametry
bits
int
Počet bitů.
Vrací
Odstínová paleta.
Výjimky
bits
CreateMonochrome()
Vytvoří monochromatickou barevnou paletu obsahující pouze 2 barvy.
public static IColorPalette CreateMonochrome()
Vrací
Barevná paleta pro monochromatické obrázky.
GetCloseImagePalette(RasterImage, int)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parametry
image
RasterImage
Rastrový obrázek.
entriesCount
int
Požadovaný počet položek.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
Příklady
Následující příklad načte BMP obrázek a uloží ho zpět do BMP pomocí různých možností uložení.```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;
// Vytvořit BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Použít 8 bitů na pixel pro zmenšení velikosti výstupního obrázku.
saveOptions.BitsPerPixel = 8;
// Nastavit nejbližší 8bitovou barevnou paletu, která pokrývá maximální počet pixelů obrázku, takže paletizovaný obrázek
// je téměř vizuálně nerozeznatelný od nepalletizovaného.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Uložit bez komprese.
// Můžete také použít RLE-8 kompresi pro zmenšení velikosti výstupního obrázku.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Nastavit horizontální a vertikální rozlišení na 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Následující příklad ukazuje, jak paletizovat BMP obrázek pro zmenšení jeho výstupní velikosti.```csharp
[C#]
// Vytvořit BMP obrázek 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Lineární gradient z levého horního do pravého dolního rohu obrázku.
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);
// Vyplnit celý obrázek lineárním gradientovým štětcem.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Získat nejbližší 8bitovou barevnou paletu, která pokrývá co nejvíce pixelů, takže paletizovaný obrázek
// je téměř vizuálně nerozeznatelný od nepalletizovaného.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// 8bitová paleta obsahuje maximálně 256 barev.
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("Velikost paletizovaného obrázku je {0} bajtů.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("Velikost nepalletizovaného obrázku je {0} bajtů.", stream.Length);
}
}
// Výstup vypadá takto:
// Velikost paletizovaného obrázku je 11078 bajtů.
// Velikost nepalletizovaného obrázku je 40054 bajtů.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. Paleta bude optimalizována pro lepší kvalitu indexovaného obrázku nebo použita “TAK, JAK JE”, když je použita metoda PaletteMiningMethod.UseCurrentPalette.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parametry
image
RasterImage
Rastrový obrázek.
entriesCount
int
Požadovaný počet položek.
paletteMiningMethod
PaletteMiningMethod
Metoda těžby palet.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
Příklady
Následující příklad ukazuje, jak komprimovat PNG obrázek, pomocí indexované barvy s nejlepší paletou.```csharp [C#]
// Načte png obrázek
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,
// Použít indexovaný typ barvy
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Použít maximální kompresi
CompressionLevel = 9,
// Získat nejbližší 8bitovou barevnou paletu, která pokrývá co nejvíce pixelů, takže paletizovaný obrázek
// je téměř vizuálně nerozeznatelný od nepalletizovaného.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// Velikost výstupního souboru by měla být výrazně snížena
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parametry
image
RasterImage
Rastrový obrázek.
destBounds
Rectangle
Rozměry cílového obrázku.
entriesCount
int
Požadovaný počet položek.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parametry
image
RasterImage
Rastrový obrázek.
destBounds
Rectangle
Rozměry cílového obrázku.
entriesCount
int
Požadovaný počet položek.
useImagePalette
bool
Pokud je nastaveno, použije vlastní paletu obrázku, pokud je k dispozici.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parametry
image
RasterImage
Rastrový obrázek.
destBounds
Rectangle
Rozměry cílového obrázku.
entriesCount
int
Požadovaný počet položek.
useImagePalette
bool
Pokud je nastaveno, použije vlastní paletu obrázku, pokud je k dispozici.
alphaBlendInColor
Color
Barva, která by měla být použita jako pozadí pro poloprůhlednou náhradu alfa.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parametry
image
RasterImage
Rastrový obrázek.
destBounds
Rectangle
Rozměry cílového obrázku.
entriesCount
int
Požadovaný počet položek.
useImagePalette
bool
Pokud je nastaveno, použije vlastní paletu obrázku, pokud je k dispozici.
alphaBlendInColor
Color
Barva, která by měla být použita jako pozadí pro poloprůhlednou náhradu alfa.
keepTransparency
bool
Pokud je nastaveno, zohlední alfa kanál barev obrázku.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
GetCloseTransparentImagePalette(RasterImage, int)
Získá barevnou paletu z rastrového obrázku (paletizuje obrázek), pokud obrázek žádnou nemá. V případě, že paleta existuje, bude použita místo provádění výpočtů.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parametry
image
RasterImage
Rastrový obrázek.
entriesCount
int
Požadovaný počet položek.
Vrací
Barevná paleta, která začíná nejčastějšími barvami z image
a obsahuje entriesCount
položek.
GetDownscalePalette(RasterImage)
Získá 256barevnou paletu, složenou z horních bitů počátečních hodnot barev obrázku.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parametry
image
RasterImage
Obrázek.
Vrací
Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Získá uniformní 256barevnou paletu.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parametry
image
RasterImage
Obrázek.
Vrací
Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Určuje, zda má zadaná paleta průhledné barvy.
public static bool HasTransparentColors(IColorPalette palette)
Parametry
palette
IColorPalette
Paleta.
Vrací
cstrue</code>, pokud má zadaná paleta průhledné barvy; jinak
csfalse.
Výjimky
palette
je null.