Class ColorPaletteHelper

Class ColorPaletteHelper

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

Вспомогательный класс для работы с цветовыми палитрами.

public static class ColorPaletteHelper

Наследование

objectColorPaletteHelper

Унаследованные члены

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Методы

Create4Bit()

Создает 4-битную цветовую палитру.

public static IColorPalette Create4Bit()

Возвращает

IColorPalette

4-битная цветовая палитра.

Create4BitGrayscale(bool)

Создает 4-битную градацию серого.

public static IColorPalette Create4BitGrayscale(bool minIsWhite)

Параметры

minIsWhite bool

если установлено в ```cstrue, палитра начинается с белого цвета, в противном случае - с черного цвета.

Возвращает

IColorPalette

4-битная градация серого.

Create8Bit()

Создает 8-битную цветовую палитру.

public static IColorPalette Create8Bit()

Возвращает

IColorPalette

8-битная цветовая палитра.

Create8BitGrayscale(bool)

Создает 8-битную градацию серого.

public static IColorPalette Create8BitGrayscale(bool minIsWhite)

Параметры

minIsWhite bool

если установлено в ```cstrue, палитра начинается с белого цвета, в противном случае - с черного цвета.

Возвращает

IColorPalette

8-битная градация серого.

Примеры

Следующий пример создает палитризованное изображение в градациях серого BMP и затем сохраняет его в файл.```csharp [C#]

                                                                                                  string dir = "c:\\temp\\";

                                                                                                  Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();

                                                                                                  // Сохранить в файл
                                                                                                  createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);

                                                                                                  // Использовать 8 бит на пиксель, чтобы уменьшить размер выходного изображения.
                                                                                                  createOptions.BitsPerPixel = 8;

                                                                                                  // Установить стандартную 8-битную градацию серого, которая охватывает все серые цвета.
                                                                                                  // Если обрабатываемое изображение содержит только серые цвета, то его палитризованная версия
                                                                                                  // визуально неотличима от непалитризованной.
                                                                                                  createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);

                                                                                                  // Сохранить без сжатия.
                                                                                                  // Вы также можете использовать сжатие RLE-8, чтобы уменьшить размер выходного изображения.
                                                                                                  createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;

                                                                                                  // Установить горизонтальное и вертикальное разрешение на 96 dpi.
                                                                                                  createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

                                                                                                  // Создать изображение BMP размером 100 x 100 пикселей и сохранить его в файл.
                                                                                                  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);

                                                                                                      // Заполнить изображение градиентом в градациях серого
                                                                                                      graphics.FillRectangle(gradientBrush, image.Bounds);

                                                                                                      image.Save();
                                                                                                  }

### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)

Получает градацию серого с указанным количеством бит. Допустимые значения бит: 1, 2, 4, 8.

```csharp
public static IColorPalette CreateGrayscale(int bits)

Параметры

bits int

Количество бит.

Возвращает

IColorPalette

Градация серого.

Исключения

ArgumentOutOfRangeException

bits

CreateMonochrome()

Создает монохромную цветовую палитру, содержащую только 2 цвета.

public static IColorPalette CreateMonochrome()

Возвращает

IColorPalette

Цветовая палитра для монохромных изображений.

GetCloseImagePalette(RasterImage, int)

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)

Параметры

image RasterImage

Растровое изображение.

entriesCount int

Желаемое количество записей.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

Примеры

Следующий пример загружает BMP изображение и сохраняет его обратно в BMP с использованием различных параметров сохранения.```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;

                                                                                                       // Создать BmpOptions
                                                                                                       Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();

                                                                                                       // Использовать 8 бит на пиксель, чтобы уменьшить размер выходного изображения.
                                                                                                       saveOptions.BitsPerPixel = 8;

                                                                                                       // Установить ближайшую 8-битную цветовую палитру, которая охватывает максимальное количество пикселей изображения, так что палитризованное изображение
                                                                                                       // практически визуально неотличимо от непалитризованного.
                                                                                                       saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);

                                                                                                       // Сохранить без сжатия.
                                                                                                       // Вы также можете использовать сжатие RLE-8, чтобы уменьшить размер выходного изображения.
                                                                                                       saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;

                                                                                                       // Установить горизонтальное и вертикальное разрешение на 96 dpi.
                                                                                                       saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

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

Следующий пример показывает, как палитризовать BMP изображение для уменьшения его выходного размера.```csharp
[C#]

                                                                                              // Создать BMP изображение 100 x 100 пикселей.
                                                                                              using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
                                                                                              {
                                                                                                  // Линейный градиент от верхнего левого до нижнего правого угла изображения.
                                                                                                  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);

                                                                                                  // Заполнить все изображение линейным градиентом.
                                                                                                  Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
                                                                                                  gr.FillRectangle(brush, bmpImage.Bounds);

                                                                                                  // Получить ближайшую 8-битную цветовую палитру, которая охватывает как можно больше пикселей, так что палитризованное изображение
                                                                                                  // практически визуально неотличимо от непалитризованного.
                                                                                                  Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);

                                                                                                  // 8-битная палитра содержит максимум 256 цветов.
                                                                                                  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("Размер палитризованного изображения составляет {0} байт.", stream.Length);
                                                                                                  }

                                                                                                  using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
                                                                                                  {
                                                                                                      bmpImage.Save(stream);
                                                                                                      System.Console.WriteLine("Размер непалитризованного изображения составляет {0} байт.", stream.Length);
                                                                                                  }
                                                                                              }

                                                                                              // Вывод выглядит следующим образом:
                                                                                              // Размер палитризованного изображения составляет 11078 байт.
                                                                                              // Размер непалитризованного изображения составляет 40054 байт.

GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Палитра будет оптимизирована для лучшего качества индексированного изображения или взята “КАК ЕСТЬ”, когда используется PaletteMiningMethod.UseCurrentPalette.

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)

Параметры

image RasterImage

Растровое изображение.

entriesCount int

Желаемое количество записей.

paletteMiningMethod PaletteMiningMethod

Метод извлечения палитры.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

Примеры

Следующий пример показывает, как сжать PNG изображение, используя индексированный цвет с палитрой наилучшего соответствия.```csharp [C#]

                                                                                                         // Загружает 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,
                                                                                                                      // Использовать индексированный цвет
                                                                                                                  ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
                                                                                                                      // Использовать максимальное сжатие
                                                                                                                  CompressionLevel = 9,
                                                                                                               // Получить ближайшую 8-битную цветовую палитру, которая охватывает как можно больше пикселей, так что палитризованное изображение
                                                                                                                  // практически визуально неотличимо от непалитризованного.
                                                                                                                  Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
                                                                                                             });
                                                                                                         }
                                                                                                             // Размер выходного файла должен быть значительно уменьшен

### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)

Параметры

image RasterImage

Растровое изображение.

destBounds Rectangle

Границы целевого изображения.

entriesCount int

Желаемое количество записей.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

GetCloseImagePalette(RasterImage, Rectangle, int, bool)

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)

Параметры

image RasterImage

Растровое изображение.

destBounds Rectangle

Границы целевого изображения.

entriesCount int

Желаемое количество записей.

useImagePalette bool

Если установлено, будет использоваться собственная палитра изображения, если она доступна.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

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

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)

Параметры

image RasterImage

Растровое изображение.

destBounds Rectangle

Границы целевого изображения.

entriesCount int

Желаемое количество записей.

useImagePalette bool

Если установлено, будет использоваться собственная палитра изображения, если она доступна.

alphaBlendInColor Color

Цвет, который должен использоваться в качестве фона для полупрозрачной замены альфа.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

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

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)

Параметры

image RasterImage

Растровое изображение.

destBounds Rectangle

Границы целевого изображения.

entriesCount int

Желаемое количество записей.

useImagePalette bool

Если установлено, будет использоваться собственная палитра изображения, если она доступна.

alphaBlendInColor Color

Цвет, который должен использоваться в качестве фона для полупрозрачной замены альфа.

keepTransparency bool

Если установлено, будет учитываться альфа-канал цветов изображения.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

GetCloseTransparentImagePalette(RasterImage, int)

Получает цветовую палитру из растрового изображения (палитризует изображение) в случае, если у изображения ее нет. Если палитра существует, она будет использована вместо выполнения расчетов.

public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)

Параметры

image RasterImage

Растровое изображение.

entriesCount int

Желаемое количество записей.

Возвращает

IColorPalette

Цветовая палитра, которая начинается с наиболее частых цветов из image и содержит entriesCount записей.

GetDownscalePalette(RasterImage)

Получить 256-битную цветовую палитру, составленную из старших битов значений цвета начального изображения.

public static ColorPalette GetDownscalePalette(RasterImage image)

Параметры

image RasterImage

Изображение.

Возвращает

ColorPalette

Aspose.Imaging.ColorPalette.

GetUniformColorPalette(RasterImage)

Получить однородную 256-битную цветовую палитру.

public static ColorPalette GetUniformColorPalette(RasterImage image)

Параметры

image RasterImage

Изображение.

Возвращает

ColorPalette

Aspose.Imaging.ColorPalette.

HasTransparentColors(IColorPalette)

Определяет, имеет ли указанная палитра прозрачные цвета.

public static bool HasTransparentColors(IColorPalette palette)

Параметры

palette IColorPalette

Палитра.

Возвращает

bool

cstrue</code>, если указанная палитра имеет прозрачные цвета; в противном случае csfalse.

Исключения

ArgumentNullException

palette равно null.

 Русский