Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Klasa pomocnicza do manipulacji paletami kolorów.
public static class ColorPaletteHelper
Dziedziczenie
Członkowie dziedziczeni
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Metody
Create4Bit()
Tworzy paletę kolorów 4-bitową.
public static IColorPalette Create4Bit()
Zwraca
Paleta kolorów 4-bitowa.
Create4BitGrayscale(bool)
Tworzy paletę odcieni szarości 4-bitową.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parametry
minIsWhite
bool
jeśli ustawione na ```cstrue, paleta zaczyna się od koloru białego, w przeciwnym razie zaczyna się od koloru czarnego.
Zwraca
Paleta odcieni szarości 4-bitowa.
Create8Bit()
Tworzy paletę kolorów 8-bitową.
public static IColorPalette Create8Bit()
Zwraca
Paleta kolorów 8-bitowa.
Create8BitGrayscale(bool)
Tworzy paletę odcieni szarości 8-bitową.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parametry
minIsWhite
bool
jeśli ustawione na ```cstrue, paleta zaczyna się od koloru białego, w przeciwnym razie zaczyna się od koloru czarnego.
Zwraca
Paleta odcieni szarości 8-bitowa.
Przykłady
Poniższy przykład tworzy paletyzowany obraz BMP w odcieniach szarości, a następnie zapisuje go do pliku.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Zapisz do pliku
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Użyj 8 bitów na piksel, aby zmniejszyć rozmiar wyjściowego obrazu.
createOptions.BitsPerPixel = 8;
// Ustaw standardową 8-bitową paletę kolorów w odcieniach szarości, która obejmuje wszystkie kolory w odcieniach szarości.
// Jeśli przetwarzany obraz zawiera tylko kolory w odcieniach szarości, to jego wersja paletyzowana
// jest wizualnie nieodróżnialna od niepaletyzowanej.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Zapisz bez kompresji.
// Możesz również użyć kompresji RLE-8, aby zmniejszyć rozmiar wyjściowego obrazu.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Ustaw poziom rozdzielczości poziomej i pionowej na 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Utwórz obraz BMP o wymiarach 100 x 100 px i zapisz go do pliku.
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);
// Wypełnij obraz gradientem w odcieniach szarości
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Uzyskuje paletę odcieni szarości o określonej liczbie bitów. Dozwolone wartości bitów to 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parametry
bits
int
Liczba bitów.
Zwraca
Paleta odcieni szarości.
Wyjątki
bits
CreateMonochrome()
Tworzy monochromatyczną paletę kolorów zawierającą tylko 2 kolory.
public static IColorPalette CreateMonochrome()
Zwraca
Paleta kolorów dla obrazów monochromatycznych.
GetCloseImagePalette(RasterImage, int)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parametry
image
RasterImage
Obraz rastrowy.
entriesCount
int
Żądana liczba wpisów.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
Przykłady
Poniższy przykład ładuje obraz BMP i zapisuje go z powrotem jako BMP, używając różnych opcji zapisu.```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;
// Utwórz BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Użyj 8 bitów na piksel, aby zmniejszyć rozmiar wyjściowego obrazu.
saveOptions.BitsPerPixel = 8;
// Ustaw najbliższą 8-bitową paletę kolorów, która obejmuje maksymalną liczbę pikseli obrazu, tak aby paletyzowany obraz
// był prawie wizualnie nieodróżnialny od niepaletyzowanego.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Zapisz bez kompresji.
// Możesz również użyć kompresji RLE-8, aby zmniejszyć rozmiar wyjściowego obrazu.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Ustaw poziom rozdzielczości poziomej i pionowej na 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Poniższy przykład pokazuje, jak paletyzować obraz BMP, aby zmniejszyć jego rozmiar wyjścia.```csharp
[C#]
// Utwórz obraz BMP 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Gradient liniowy od lewego górnego rogu do prawego dolnego rogu obrazu.
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);
// Wypełnij cały obraz gradientem liniowym.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Uzyskaj najbliższą 8-bitową paletę kolorów, która obejmuje jak najwięcej pikseli, tak aby paletyzowany obraz
// był prawie wizualnie nieodróżnialny od niepaletyzowanego.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// 8-bitowa paleta zawiera maksymalnie 256 kolorów.
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("Rozmiar paletyzowanego obrazu wynosi {0} bajtów.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("Rozmiar niepaletyzowanego obrazu wynosi {0} bajtów.", stream.Length);
}
}
// Wyjście wygląda tak:
// Rozmiar paletyzowanego obrazu wynosi 11078 bajtów.
// Rozmiar niepaletyzowanego obrazu wynosi 40054 bajtów.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. Paleta jest optymalizowana dla lepszej jakości obrazu indeksowanego lub brana “TAK JEST”, gdy używana jest metoda PaletteMiningMethod.UseCurrentPalette.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parametry
image
RasterImage
Obraz rastrowy.
entriesCount
int
Żądana liczba wpisów.
paletteMiningMethod
PaletteMiningMethod
Metoda wydobywania palety.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
Przykłady
Poniższy przykład pokazuje, jak skompresować obraz PNG, używając kolorów indeksowanych z najlepszą dopasowaną paletą```csharp [C#]
// Ładuje obraz png
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,
// Użyj indeksowanego typu koloru
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Użyj maksymalnej kompresji
CompressionLevel = 9,
// Uzyskaj najbliższą 8-bitową paletę kolorów, która obejmuje jak najwięcej pikseli, tak aby paletyzowany obraz
// był prawie wizualnie nieodróżnialny od niepaletyzowanego.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// Rozmiar pliku wyjściowego powinien być znacznie mniejszy
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parametry
image
RasterImage
Obraz rastrowy.
destBounds
Rectangle
Zakres obrazu docelowego.
entriesCount
int
Żądana liczba wpisów.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parametry
image
RasterImage
Obraz rastrowy.
destBounds
Rectangle
Zakres obrazu docelowego.
entriesCount
int
Żądana liczba wpisów.
useImagePalette
bool
Jeśli jest ustawione, użyje własnej palety obrazu, jeśli jest dostępna.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parametry
image
RasterImage
Obraz rastrowy.
destBounds
Rectangle
Zakres obrazu docelowego.
entriesCount
int
Żądana liczba wpisów.
useImagePalette
bool
Jeśli jest ustawione, użyje własnej palety obrazu, jeśli jest dostępna.
alphaBlendInColor
Color
Kolor, który powinien być użyty jako kolor tła do półprzezroczystego zastępowania alfa.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz jej nie ma. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parametry
image
RasterImage
Obraz rastrowy.
destBounds
Rectangle
Zakres obrazu docelowego.
entriesCount
int
Żądana liczba wpisów.
useImagePalette
bool
Jeśli jest ustawione, użyje własnej palety obrazu, jeśli jest dostępna.
alphaBlendInColor
Color
Kolor, który powinien być użyty jako kolor tła do półprzezroczystego zastępowania alfa.
keepTransparency
bool
Jeśli jest ustawione, uwzględni bity kanału alfa kolorów obrazu.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
GetCloseTransparentImagePalette(RasterImage, int)
Uzyskuje paletę kolorów z obrazu rastrowego (paletyzuje obraz) w przypadku, gdy obraz nie ma palety. W przypadku istnienia palety, zostanie ona użyta zamiast wykonywania obliczeń.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parametry
image
RasterImage
Obraz rastrowy.
entriesCount
int
Żądana liczba wpisów.
Zwraca
Paleta kolorów, która zaczyna się od najczęstszych kolorów z image
i zawiera entriesCount
wpisów.
GetDownscalePalette(RasterImage)
Uzyskuje paletę 256 kolorów, składającą się z górnych bitów wartości kolorów początkowego obrazu.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parametry
image
RasterImage
Obraz.
Zwraca
Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Uzyskuje jednolitą paletę 256 kolorów.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parametry
image
RasterImage
Obraz.
Zwraca
Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Określa, czy określona paleta ma kolory przezroczyste.
public static bool HasTransparentColors(IColorPalette palette)
Parametry
palette
IColorPalette
Paleta.
Zwraca
cstrue</code>, jeśli określona paleta ma kolory przezroczyste; w przeciwnym razie
csfalse.
Wyjątki
palette
jest null.