GetCloseImagePalette

GetCloseImagePalette(RasterImage, int)

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

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
ПараметрТипОписание
imageRasterImageРастровое изображение.
entriesCountInt32Желаемые записи учитываются.

Возвращаемое значение

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

Примеры

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

[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("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);
    }
}

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

Смотрите также


GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)

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

public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, 
    PaletteMiningMethod paletteMiningMethod)
ПараметрТипОписание
imageRasterImageРастровое изображение.
entriesCountInt32Желаемые записи учитываются.
paletteMiningMethodPaletteMiningMethodМетод добычи палитры.

Возвращаемое значение

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

Примеры

В следующем примере показано, как сжать изображение PNG с использованием индексированного цвета с палитрой наилучшего соответствия.

[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)
    });
}
    // Размер выходного файла должен быть значительно уменьшен

Смотрите также


GetCloseImagePalette(RasterImage, Rectangle, int)

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

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount)
ПараметрТипОписание
imageRasterImageРастровое изображение.
destBoundsRectangleГраницы целевого изображения.
entriesCountInt32Желаемые записи учитываются.

Возвращаемое значение

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

Смотрите также


GetCloseImagePalette(RasterImage, Rectangle, int, bool)

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

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette)
ПараметрТипОписание
imageRasterImageРастровое изображение.
destBoundsRectangleГраницы целевого изображения.
entriesCountInt32Желаемые записи учитываются.
useImagePaletteBooleanЕсли установлено, будет использоваться собственная палитра изображений, если она доступна.

Возвращаемое значение

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

Смотрите также


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

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

public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, 
    int entriesCount, bool useImagePalette, Color alphaBlendInColor)
ПараметрТипОписание
imageRasterImageРастровое изображение.
destBoundsRectangleГраницы целевого изображения.
entriesCountInt32Желаемые записи учитываются.
useImagePaletteBooleanЕсли установлено, будет использоваться собственная палитра изображений, если она доступна.
alphaBlendInColorColorЦвет, который следует использовать в качестве цвета фона для полупрозрачной альфа-замены.

Возвращаемое значение

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

Смотрите также