AddFrame

AddFrame()

Добавляет новый кадр в конец собственной коллекции кадров. Новый кадр будет создан в соответствии с размером текущего изображения.

public ApngFrame AddFrame()

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

Недавно созданный кадр APNG.

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


AddFrame(RasterImage)

Добавляет новый кадр в конец собственной коллекции кадров. Содержимое нового кадра будет заполнено из указанного изображения.

public void AddFrame(RasterImage frameImage)
ПараметрТипОписание
frameImageRasterImageИзображение кадра.

Исключения

исключениеусловие
ArgumentNullExceptionкадримаже имеет значение null.

Примеры

В следующем примере показано, как создать изображение 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();
    }
}

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


AddFrame(RasterImage, uint)

Добавляет новый кадр в конец собственной коллекции кадров. Содержимое нового кадра будет заполнено из указанного изображения.

public void AddFrame(RasterImage frameImage, uint frameTime)
ПараметрТипОписание
frameImageRasterImageИзображение кадра.
frameTimeUInt32Длительность кадра в миллисекундах.

Исключения

исключениеусловие
ArgumentNullExceptionкадримаже имеет значение null.

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