ApngOptions

ApngOptions class

Формат анимированного файла PNG options

public class ApngOptions : PngOptions

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

ИмяОписание
ApngOptions()Конструктор по умолчанию.

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

ИмяОписание
BitDepth { get; set; }Битовая глубина.
BufferSizeHint { get; set; }Получает или задает подсказку о размере буфера, которая определяет максимально допустимый размер для всех внутренних буферов.
ColorType { get; set; }Получает или задает тип цвета.
CompressionLevel { get; set; }Уровень сжатия изображения png в диапазоне от 0 до 9, где 9 — максимальное сжатие, а 0 — режим сохранения.
DefaultFrameTime { get; set; }Получает или задает длительность кадра по умолчанию.
Disposed { get; }Получает значение, указывающее, удален ли этот экземпляр.
FilterType { get; set; }Получает или задает тип фильтра, используемый во время процесса сохранения файла png.
FullFrame { get; set; }Получает или задает значение, указывающее, является ли [полный кадр].
MultiPageOptions { get; set; }Многостраничные параметры
NumPlays { get; set; }Получает или задает количество циклов анимации. 0 указывает на бесконечный цикл.
virtual Palette { get; set; }Получает или задает цветовую палитру.
ProgressEventHandler { get; set; }Получает или задает обработчик события выполнения.
Progressive { get; set; }Получает или задает значение, указывающее, является ли этоPngOptions является прогрессивным.
virtual ResolutionSettings { get; set; }Получает или задает параметры разрешения.
Source { get; set; }Получает или задает источник для создания изображения в.
VectorRasterizationOptions { get; set; }Получает или задает параметры векторной растеризации.
override XmpData { get; set; }Получает или задает контейнер метаданных XMP.

Методы

ИмяОписание
virtual Clone()Клонирует этот экземпляр.
Dispose()Удаляет текущий экземпляр.

Примеры

В следующем примере показано, как экспортировать файл apng в формате APNG из другого неанимированного многостраничного формата.

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

using (Image image = Image.Load("img4.tif")) {
    // Установка длительности кадра по умолчанию
    image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 мс
    image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 мс
}

В следующем примере показано, как выполнить экспорт в формат файла APNG.

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

using (Image image = Image.Load("Animation1.webp")) {
    // Экспорт в APNG-анимацию с неограниченным количеством циклов анимации по умолчанию
    image.Save("Animation1.webp.png", new ApngOptions());
    // Настройка циклов анимации
    image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 циклов
}

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

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Apng;

const int AnimationDuration = 1000; // 1 с
const int FrameDuration = 70; // 70 мс
using (RasterImage sourceImage = (RasterImage)Image.Load("not_animated.png"))
{
    ApngOptions createOptions = new ApngOptions
    {
        Source = new FileCreateSource("raster_animation.png", false),
        DefaultFrameTime = (uint)FrameDuration,
        ColorType = PngColorType.TruecolorWithAlpha,
    };

    using (ApngImage apngImage = (ApngImage)Image.Create(
        createOptions,
        sourceImage.Width,
        sourceImage.Height))
    {
        // Здесь можно установить время кадра изображения по умолчанию: apngImage.DefaultFrameTime = (uint)FrameDuration;

        int numOfFrames = AnimationDuration / FrameDuration;
        int numOfFrames2 = numOfFrames / 2;

        // Очистка, так как изображение по умолчанию содержит один кадр
        apngImage.RemoveAllFrames();

        // добавляем первый кадр
        apngImage.AddFrame(sourceImage);

        // добавляем промежуточные кадры
        for (int frameIndex = 1; frameIndex < numOfFrames - 1; ++frameIndex)
        {
            apngImage.AddFrame(sourceImage);
            ApngFrame lastFrame = (ApngFrame)apngImage.Pages[apngImage.PageCount - 1];
            float gamma = frameIndex >= numOfFrames2 ? numOfFrames - frameIndex - 1 : frameIndex;
            lastFrame.AdjustGamma(gamma);
        }

        // добавляем последний кадр
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

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