Class ColorPaletteHelper

Class ColorPaletteHelper

Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)

Klasa pomocnicza do manipulacji paletami kolorów.

public static class ColorPaletteHelper

Dziedziczenie

objectColorPaletteHelper

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

IColorPalette

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

IColorPalette

Paleta odcieni szarości 4-bitowa.

Create8Bit()

Tworzy paletę kolorów 8-bitową.

public static IColorPalette Create8Bit()

Zwraca

IColorPalette

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

IColorPalette

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

IColorPalette

Paleta odcieni szarości.

Wyjątki

ArgumentOutOfRangeException

bits

CreateMonochrome()

Tworzy monochromatyczną paletę kolorów zawierającą tylko 2 kolory.

public static IColorPalette CreateMonochrome()

Zwraca

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

ColorPalette

Aspose.Imaging.ColorPalette.

GetUniformColorPalette(RasterImage)

Uzyskuje jednolitą paletę 256 kolorów.

public static ColorPalette GetUniformColorPalette(RasterImage image)

Parametry

image RasterImage

Obraz.

Zwraca

ColorPalette

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

bool

cstrue</code>, jeśli określona paleta ma kolory przezroczyste; w przeciwnym razie csfalse.

Wyjątki

ArgumentNullException

palette jest null.

 Polski