GifImage

GifImage class

GIF-изображение.

public sealed class GifImage : RasterCachedMultipageImage, IMultipageImageExt

Конструкторы

ИмяОписание
GifImage(GifFrameBlock)Инициализирует новый экземплярGifImage класс.
GifImage(GifFrameBlock, IColorPalette)Инициализирует новый экземплярGifImage класс.
GifImage(GifFrameBlock, IColorPalette, bool, byte, byte, byte, bool)Инициализирует новый экземплярGifImage класс.

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

ИмяОписание
ActiveFrame { get; set; }Получает или задает активный фрейм.
AutoAdjustPalette { get; set; }Получает или задает значение, указывающее, следует ли автоматически настраивать палитру.
override BackgroundColor { get; set; }Получает или задает цвет фона.
BackgroundColorIndex { get; set; }Получает или задает индекс цвета фона.
override BitsPerPixel { get; }Получает количество бит изображения на пиксель.
Blocks { get; }Получает блоки GIF.
Bounds { get; }Получает границы изображения.
BufferSizeHint { get; set; }Получает или задает подсказку о размере буфера, которая определяет максимально допустимый размер для всех внутренних буферов.
Container { get; }ПолучаетImage контейнер.
DataStreamContainer { get; }Получает поток данных объекта.
Disposed { get; }Получает значение, указывающее, удален ли этот экземпляр.
override FileFormat { get; }Получает значение формата файла
override HasAlpha { get; }Получает значение, указывающее, есть ли у этого экземпляра альфа.
override HasBackgroundColor { get; }Получает значение, указывающее, имеет ли изображение фоновый цвет.
HasTrailer { get; set; }Получает или задает значение, указывающее, есть ли у GIF трейлер.
override HasTransparentColor { get; set; }Получает значение, указывающее, имеет ли активный фрейм прозрачный цвет.
override Height { get; }Получает высоту изображения.
virtual HorizontalResolution { get; set; }Получает или задает горизонтальное разрешение в пикселях на дюйм для этогоRasterImage .
override ImageOpacity { get; }Получает непрозрачность этого изображения (активный кадр).
InterruptMonitor { get; set; }Получает или устанавливает монитор прерываний.
IsCached { get; }Получает значение, указывающее, кэшируются ли в данный момент данные изображения.
IsInterlaced { get; }Получает значение, указывающее, является ли данный экземпляр изображения чересстрочным.
IsPaletteSorted { get; set; }Получает или задает значение, указывающее, отсортирована ли палитра.
IsRawDataAvailable { get; }Получает значение, указывающее, доступна ли загрузка необработанных данных.
LoopsCount { get; set; }Получает количество циклов (если изображение gif содержит информацию о циклах)
override PageCount { get; }Получает количество страниц.
override PageExportingAction { get; set; }Получает или задает действие экспорта страницы. Обратите внимание, что установка этого метода автоматически освобождает ресурсы страницы после его выполнения. Он будет выполняться непосредственно перед сохранением каждой страницы.
override Pages { get; }Получает страницы.
Palette { get; set; }Получает или задает цветовую палитру. Цветовая палитра не используется, когда пиксели представлены напрямую.
PaletteColorResolutionBits { get; set; }Получает или устанавливает биты цветового разрешения палитры.
PixelAspectRatio { 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; }Получает размер изображения.
override TransparentColor { get; }Получает прозрачный цвет активного кадра.
virtual UpdateXmpData { get; set; }Получает или задает значение, указывающее, следует ли обновлять метаданные XMP.
override UsePalette { get; }Получает значение, указывающее, используется ли палитра изображения.
virtual UseRawData { get; set; }Получает или задает значение, указывающее, следует ли использовать загрузку необработанных данных, когда доступна загрузка необработанных данных.
virtual VerticalResolution { get; set; }Получает или задает разрешение по вертикали в пикселях на дюйм этогоRasterImage .
override Width { get; }Получает ширину изображения.
override XmpData { get; set; }Получает или задает метаданные XMP.

Методы

ИмяОписание
AddBlock(IGifBlock)Добавляет новый блок GIF.
AddPage(RasterImage)Добавляет страницу к изображению.
override AdjustBrightness(int)Настройкаbrightness для изображения.
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()Кэширует приватные данные.
CanSave(ImageOptionsBase)Определяет, можно ли сохранить изображение в указанном формате файла, представленном переданными параметрами сохранения.
ClearBlocks()Очищает все блоки GIF.
override Crop(Rectangle)Обрезка изображения.
override Crop(int, int, int, int)Обрезать изображение со сдвигами.
Dispose()Удаляет текущий экземпляр.
Dither(DitheringMethod, int)Выполняет сглаживание текущего изображения.
override Dither(DitheringMethod, int, IColorPalette)Выполняет сглаживание текущего изображения.
override 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)Получает дату и время последнего изменения образа ресурса.
override GetOriginalOptions()Получает параметры, основанные на настройках исходного файла. Это может быть полезно для сохранения без изменений битовой глубины и других параметров исходного изображения. Например, если мы загружаем черно-белое изображение PNG с 1 битом на пиксель, а затем сохраните его, используя the Save будет создано выходное изображение PNG с 8 битами на пиксель. Чтобы избежать этого и сохранить изображение PNG с 1 битом на пиксель, используйте этот метод, чтобы получить соответствующие параметры сохранения и передать их Save метод в качестве второго параметра.
GetPixel(int, int)Получает пиксель изображения.
GetSkewAngle()Получает угол наклона. Этот метод применим к отсканированным текстовым документам для определения угла наклона при сканировании.
override Grayscale()Преобразование изображения в его представление в градациях серого
InsertBlock(int, IGifBlock)Добавляет новый блок GIF.
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 методы.
override NormalizeAngle(bool, Color)Нормализует угол. Этот метод применим к отсканированным текстовым документам, чтобы избавиться от перекоса сканирования. Этот метод использует!:GetSkewAngle а такжеRotate методы.
OrderBlocks()Упорядочивает блоки GIF в соответствии со спецификацией GIF. НемногоGifGraphicsControlBlock может быть удален для правильного макета GIF.
ReadArgb32ScanLine(int)Считывает всю строку сканирования по указанному индексу строки сканирования.
ReadScanLine(int)Считывает всю строку сканирования по указанному индексу строки сканирования.
RemoveBlock(IGifBlock)Удаляет блок GIF.
ReplaceColor(Color, byte, Color)Заменяет один цвет другим с допустимой разницей и сохраняет исходное значение альфа-канала для сохранения сглаженных краев.
override ReplaceColor(int, byte, int)Заменяет один цвет другим с допустимой разницей и сохраняет исходное значение альфа-канала для сохранения сглаженных краев.
ReplaceNonTransparentColors(Color)Заменяет все непрозрачные цвета новым цветом и сохраняет исходное значение альфа-канала для сохранения гладких краев. Примечание: если вы используете его на изображениях без прозрачности, все цвета будут заменены одним цветом.
override ReplaceNonTransparentColors(int)Заменяет все непрозрачные цвета новым цветом и сохраняет исходное значение альфа-канала для сохранения гладких краев. Примечание: если вы используете его на изображениях без прозрачности, все цвета будут заменены одним цветом.
Resize(int, int)Изменяет размер изображения. По умолчаниюNearestNeighbourResample используется.
override Resize(int, int, ImageResizeSettings)Изменяет размер изображения.
override Resize(int, int, ResizeType)Изменяет размер изображения.
ResizeFullFrame(int, int, ResizeType)Изменяет размер изображения, используя полные кадры для каждой страницы GIF. Требуется во избежание появления возможных артефактов.
ResizeHeightProportionally(int)Изменяет размер высоты пропорционально. По умолчаниюNearestNeighbourResample используется.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Изменяет размер высоты пропорционально.
override ResizeHeightProportionally(int, ResizeType)Изменяет ширину пропорционально.
ResizeProportional(int, int, ResizeType)Выполняет пропорциональное изменение размера изображения. Пропорциональное изменение размера изменит размер каждого кадра в соответствии с соотношениемnewWidth/ширина иnewHeight /высота.
ResizeWidthProportionally(int)Изменяет ширину пропорционально. По умолчаниюNearestNeighbourResample используется.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Изменяет ширину пропорционально.
override ResizeWidthProportionally(int, ResizeType)Изменяет ширину пропорционально.
virtual Rotate(float)Повернуть изображение вокруг центра.
override Rotate(float, bool, Color)!:RasterCahcedMultipageImage.Rotate изображение вокруг центра.
override RotateFlip(RotateFlipType)Вращает, переворачивает или вращает и переворачивает только активный кадр.
Save()Сохраняет данные изображения в базовый поток.
Save(Stream)Сохраняет данные объекта в указанный поток.
override 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 для указанной позиции.
SetFrameTime(ushort)Устанавливает продолжительность всех кадров в миллисекундах. Изменение этого значения приведет к сбросу задержки для всех кадров.
override SetPalette(IColorPalette, bool)Задает палитру изображения.
SetPixel(int, int, Color)Устанавливает пиксель изображения для указанной позиции.
virtual SetResolution(double, double)Устанавливает разрешение для этогоRasterImage .
virtual ToBitmap()Преобразует растровое изображение в растровое.
WriteArgb32ScanLine(int, int[])Записывает всю строку сканирования в указанный индекс строки сканирования.
WriteScanLine(int, Color[])Записывает всю строку сканирования в указанный индекс строки сканирования.

Примеры

Экспорт части анимации из изображения GIF на основе временного интервала.

[C#]

using (var image = Image.Load("Animation.gif"))
{
    var options = new GifOptions
    {
        FullFrame = true,
        MultiPageOptions = new MultiPageOptions
        {
            Mode = MultiPageMode.TimeInterval,
            TimeInterval = new TimeInterval(0, 400)
        }
    };

    image.Save("PartOfAnimation.gif", options);
}

В этом примере показано, как создать изображение в формате GIF и сохранить его в файл.

[C#]

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

// Создаем блок GIF Frame размером 100x100 пикселей.
using (Aspose.Imaging.FileFormats.Gif.Blocks.GifFrameBlock firstBlock = new Aspose.Imaging.FileFormats.Gif.Blocks.GifFrameBlock(100, 100))
{
    // Заливаем весь блок красным.
    Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(firstBlock);
    Aspose.Imaging.Brushes.SolidBrush brush = new Aspose.Imaging.Brushes.SolidBrush(Aspose.Imaging.Color.Red);
    gr.FillRectangle(brush, firstBlock.Bounds);

    using (Aspose.Imaging.FileFormats.Gif.GifImage gifImage = new Aspose.Imaging.FileFormats.Gif.GifImage(firstBlock))
    {
        gifImage.Save(dir + "output.gif");
    }
}

Создайте многостраничное изображение GIF, используя одностраничные растровые изображения.

[C#]

static void Main(string[] args)
{
    // Загружаем фреймы
    var frames = LoadFrames("Animation frames").ToArray();

    // Создаем GIF-изображение, используя первый кадр
    using (var image = new GifImage(new GifFrameBlock(frames[0])))
    {
        // Добавляем кадры к GIF-изображению с помощью метода AddPage
        for (var index = 1; index < frames.Length; index++)
        {
            image.AddPage(frames[index]);
        }

        // Сохранить GIF-изображение
        image.Save("Multipage.gif");
    }
}

private static IEnumerable<RasterImage> LoadFrames(string directory)
{
    foreach (var filePath in Directory.GetFiles(directory))
    {
        yield return (RasterImage)Image.Load(filePath);
    }
}

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