Class RasterCachedImage

RasterCachedImage class

Представляет растровое изображение, поддерживающее операции с растровой графикой. Это изображение кэширует пиксельные данные, когда это необходимо.

public abstract class RasterCachedImage : RasterImage

Характеристики

ИмяОписание
AutoAdjustPalette { get; set; }Получает или задает значение, указывающее, следует ли автоматически настраивать палитру.
virtual BackgroundColor { get; set; }Получает или задает значение цвета фона.
abstract BitsPerPixel { get; }Получает количество бит изображения на пиксель.
Bounds { get; }Получает границы изображения.
BufferSizeHint { get; set; }Получает или задает подсказку о размере буфера, которая определяет максимально допустимый размер для всех внутренних буферов.
Container { get; }ПолучаетImage контейнер.
DataStreamContainer { get; }Получает поток данных объекта.
Disposed { get; }Получает значение, указывающее, удален ли этот экземпляр.
virtual FileFormat { get; }Получает значение формата файла
virtual HasAlpha { get; }Получает значение, указывающее, есть ли у этого экземпляра альфа.
virtual HasBackgroundColor { get; set; }Получает или задает значение, указывающее, имеет ли изображение фоновый цвет.
virtual HasTransparentColor { get; set; }Получает значение, указывающее, имеет ли изображение прозрачный цвет.
abstract Height { get; }Получает высоту изображения.
virtual HorizontalResolution { get; set; }Получает или задает горизонтальное разрешение в пикселях на дюйм для этогоRasterImage .
virtual ImageOpacity { get; }Получает непрозрачность этого изображения.
InterruptMonitor { get; set; }Получает или устанавливает монитор прерываний.
override IsCached { get; }Получает значение, указывающее, кэшируются ли в данный момент данные изображения.
IsRawDataAvailable { get; }Получает значение, указывающее, доступна ли загрузка необработанных данных.
Palette { get; set; }Получает или задает цветовую палитру. Цветовая палитра не используется, когда пиксели представлены напрямую.
virtual PremultiplyComponents { get; set; }Получает или задает значение, указывающее, должны ли компоненты изображения предварительно умножаться.
RawCustomColorConverter { get; set; }Получает или задает пользовательский конвертер цветов
virtual RawDataFormat { get; }Получает формат необработанных данных.
RawDataSettings { get; }Получает текущие настройки необработанных данных. Обратите внимание, что при использовании этих настроек данные загружаются без преобразования.
RawFallbackIndex { get; set; }Получает или задает резервный индекс для использования, когда индекс палитры выходит за пределы
RawIndexedColorConverter { get; set; }Получает или задает преобразователь индексированных цветов
virtual RawLineSize { get; }Получает исходный размер строки в байтах.
Size { get; }Получает размер изображения.
virtual TransparentColor { get; set; }Получает прозрачный цвет изображения.
virtual UpdateXmpData { get; set; }Получает или задает значение, указывающее, следует ли обновлять метаданные XMP.
virtual UseRawData { get; set; }Получает или задает значение, указывающее, следует ли использовать загрузку необработанных данных, когда доступна загрузка необработанных данных.
virtual VerticalResolution { get; set; }Получает или задает разрешение по вертикали в пикселях на дюйм этогоRasterImage .
abstract Width { get; }Получает ширину изображения.
virtual XmpData { get; set; }Получает или задает метаданные XMP.

Методы

ИмяОписание
override AdjustBrightness(int)Настройка яркости изображения.
override AdjustContrast(float)Изображение контрастное
override AdjustGamma(float)Гамма-коррекция изображения.
override AdjustGamma(float, float, float)Гамма-коррекция изображения.
override BinarizeBradley(double)Бинаризация изображения с использованием алгоритма адаптивной пороговой обработки Брэдли с использованием интегрального порогового значения изображения
override BinarizeBradley(double, int)Бинаризация изображения с использованием алгоритма адаптивной пороговой обработки Брэдли с использованием интегрального порогового значения изображения
override BinarizeFixed(byte)Бинаризация изображения с заданным порогом
override BinarizeOtsu()Бинаризация изображения с пороговым значением Otsu
override CacheData()Кэширует данные и гарантирует, что дополнительная загрузка данных не будет выполняться из базовогоDataStreamContainer .
CanSave(ImageOptionsBase)Определяет, можно ли сохранить изображение в указанном формате файла, представленном переданными параметрами сохранения.
override Crop(Rectangle)Обрезка изображения.
virtual Crop(int, int, int, int)Обрезать изображение со сдвигами.
Dispose()Удаляет текущий экземпляр.
Dither(DitheringMethod, int)Выполняет сглаживание текущего изображения.
override Dither(DitheringMethod, int, IColorPalette)Выполняет сглаживание текущего изображения.
virtual Filter(Rectangle, FilterOptionsBase)Фильтрует указанный прямоугольник.
GetArgb32Pixel(int, int)Получает изображение 32-битного пикселя ARGB.
GetDefaultArgb32Pixels(Rectangle)Получает массив 32-битных пикселей ARGB по умолчанию.
virtual GetDefaultOptions(object[])Получает параметры по умолчанию.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)Получает массив пикселей по умолчанию с помощью частичной загрузки пикселей.
GetDefaultRawData(Rectangle, RawDataSettings)Получает массив необработанных данных по умолчанию.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)Получает массив необработанных данных по умолчанию с использованием частичной загрузки пикселей.
virtual GetModifyDate(bool)Получает дату и время последнего изменения образа ресурса.
virtual GetOriginalOptions()Получает параметры, основанные на настройках исходного файла. Это может быть полезно для сохранения без изменений битовой глубины и других параметров исходного изображения. Например, если мы загружаем черно-белое изображение PNG с 1 битом на пиксель, а затем сохраните его, используя the Save будет создано выходное изображение PNG с 8 битами на пиксель. Чтобы избежать этого и сохранить изображение PNG с 1 битом на пиксель, используйте этот метод, чтобы получить соответствующие параметры сохранения и передать их Saveметод в качестве второго параметра.
GetPixel(int, int)Получает пиксель изображения.
GetSkewAngle()Получает угол наклона. Этот метод применим к отсканированным текстовым документам для определения угла наклона при сканировании.
override Grayscale()Преобразование изображения в его представление в градациях серого
LoadArgb32Pixels(Rectangle)Загружает 32-битные пиксели ARGB.
LoadArgb64Pixels(Rectangle)Загружает 64-битные пиксели ARGB.
LoadCmyk32Pixels(Rectangle)Загружает пиксели в формате CMYK.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)Загружает 32-битные пиксели ARGB частично по пакетам.
LoadPartialPixels(Rectangle, IPartialPixelLoader)Загружает пиксели частично пачками.
LoadPixels(Rectangle)Загружает пиксели.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)Загружает необработанные данные.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)Загружает необработанные данные.
NormalizeAngle()Нормализует угол. Этот метод применим к отсканированным текстовым документам, чтобы избавиться от перекоса сканирования. Этот метод используетGetSkewAngle иRotate методы.
virtual NormalizeAngle(bool, Color)Нормализует угол. Этот метод применим к отсканированным текстовым документам, чтобы избавиться от перекоса сканирования. Этот метод используетGetSkewAngle иRotate методы.
ReadArgb32ScanLine(int)Считывает всю строку сканирования по указанному индексу строки сканирования.
ReadScanLine(int)Считывает всю строку сканирования по указанному индексу строки сканирования.
ReplaceColor(Color, byte, Color)Заменяет один цвет другим с допустимой разницей и сохраняет исходное значение альфа-канала для сохранения сглаженных краев.
virtual ReplaceColor(int, byte, int)Заменяет один цвет другим с допустимой разницей и сохраняет исходное значение альфа-канала для сохранения сглаженных краев.
ReplaceNonTransparentColors(Color)Заменяет все непрозрачные цвета новым цветом и сохраняет исходное значение альфа-канала для сохранения гладких краев. Примечание: если вы используете его на изображениях без прозрачности, все цвета будут заменены одним цветом.
virtual ReplaceNonTransparentColors(int)Заменяет все непрозрачные цвета новым цветом и сохраняет исходное значение альфа-канала для сохранения гладких краев. Примечание: если вы используете его на изображениях без прозрачности, все цвета будут заменены одним цветом.
Resize(int, int)Изменяет размер изображения. По умолчаниюLeftTopToLeftTopиспользуется.
override Resize(int, int, ImageResizeSettings)Изменяет размер изображения.
override Resize(int, int, ResizeType)Изменяет размер изображения.
ResizeHeightProportionally(int)Изменяет размер высоты пропорционально.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Изменяет размер высоты пропорционально.
virtual ResizeHeightProportionally(int, ResizeType)Изменяет размер высоты пропорционально.
ResizeWidthProportionally(int)Изменяет ширину пропорционально.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Изменяет ширину пропорционально.
virtual ResizeWidthProportionally(int, ResizeType)Изменяет ширину пропорционально.
virtual Rotate(float)Повернуть изображение вокруг центра.
override Rotate(float, bool, Color)Повернуть изображение вокруг центра.
override RotateFlip(RotateFlipType)Вращает, переворачивает или поворачивает и переворачивает изображение.
Save()Сохраняет данные изображения в базовый поток.
virtual Save(Stream)Сохраняет данные объекта в указанный поток.
Save(string)Сохраняет данные объекта в указанном месте файла.
Save(Stream, ImageOptionsBase)Сохраняет данные изображения в указанный поток в указанном формате файла в соответствии с параметрами сохранения.
virtual Save(string, bool)Сохраняет данные объекта в указанном месте файла.
virtual Save(string, ImageOptionsBase)Сохраняет данные объекта в указанном месте файла в указанном формате файла в соответствии с параметрами сохранения.
override Save(Stream, ImageOptionsBase, Rectangle)Сохраняет данные изображения в указанный поток в указанном формате файла в соответствии с параметрами сохранения.
virtual Save(string, ImageOptionsBase, Rectangle)Сохраняет данные объекта в указанном месте файла в указанном формате файла в соответствии с параметрами сохранения.
SaveArgb32Pixels(Rectangle, int[])Сохраняет 32-битные пиксели ARGB.
SaveCmyk32Pixels(Rectangle, int[])Сохраняет пиксели.
SavePixels(Rectangle, Color[])Сохраняет пиксели.
SaveRawData(byte[], int, Rectangle, RawDataSettings)Сохраняет необработанные данные.
SetArgb32Pixel(int, int, int)Устанавливает 32-битный пиксель изображения ARGB для указанной позиции.
override SetPalette(IColorPalette, bool)Задает палитру изображения.
SetPixel(int, int, Color)Устанавливает пиксель изображения для указанной позиции.
virtual SetResolution(double, double)Устанавливает разрешение для этогоRasterImage .
virtual ToBitmap()Преобразует растровое изображение в растровое.
WriteArgb32ScanLine(int, int[])Записывает всю строку сканирования в указанный индекс строки сканирования.
WriteScanLine(int, Color[])Записывает всю строку сканирования в указанный индекс строки сканирования.

Примеры

Следующий код демонстрирует возможность обрезать изображение по определенному прямоугольнику.

[C#]

string sourceFileName = "SourceFile.psd";
string exportPath = "SourceFileEdited.psd";
string exportPathPng = "SourceFileEdited.png";

using (var image = (PsdImage)Image.Load(sourceFileName))
{
    var oldLayer = image.Layers[0];
    var oldBounds = oldLayer.Bounds;

    var oldLayerData = image.Layers[0].LoadArgb32Pixels(oldBounds);

    var layers = new Layer[4];
    for (int i = 0; i < 4; i++)
    {
        layers[i] = new Layer(
            oldBounds,
            new byte[oldBounds.Width * oldBounds.Height],
            new byte[oldBounds.Width * oldBounds.Height],
            new byte[oldBounds.Width * oldBounds.Height],
            "Layer " + i.ToString());
        layers[i].SaveArgb32Pixels(oldBounds, oldLayerData);
    }

    image.Resize(186, 602);

    layers[0].Crop(new Rectangle(0, 0, 186, 159));
    layers[1].Crop(new Rectangle(186, 0, 186, 159));
    layers[2].Crop(new Rectangle(0, 159, 186, 142));
    layers[3].Crop(new Rectangle(186, 159, 186, 142));

    oldLayer.Dispose();
    image.Layers = layers;

    var top = 0;
    for (int i = 0; i < 4; i++)
    {
        var width = layers[i].Width;
        var height = layers[i].Height;
        layers[i].Left = 0;
        layers[i].Top = top;
        layers[i].Right = width;
        layers[i].Bottom = height + layers[i].Top;
        top += layers[i].Height;
    }

    // Сохранить psd
    image.Save(exportPath, new PsdOptions());

    // Сохранить png
    image.Save(exportPathPng, new PngOptions());
}

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