AddFrame

AddFrame()

Agrega un nuevo marco al final de la propia colección de marcos. Se creará un nuevo marco de acuerdo con el tamaño de la imagen actual.

public ApngFrame AddFrame()

Valor_devuelto

El marco APNG recién creado.

Ver también


AddFrame(RasterImage)

Agrega un nuevo marco al final de la propia colección de marcos. El contenido del nuevo marco se rellenará a partir de la imagen especificada.

public void AddFrame(RasterImage frameImage)
ParámetroEscribeDescripción
frameImageRasterImageLa imagen del marco.

Excepciones

excepcióncondición
ArgumentNullExceptionframeImage es nulo.

Ejemplos

El siguiente ejemplo muestra cómo crear una imagen APNG a partir de otra imagen ráster de una sola página.

[C#]

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

const int AnimationDuration = 1000; // 1 segundo
const int FrameDuration = 70; // 70ms
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))
    {
        // Es posible establecer el tiempo de cuadro predeterminado de la imagen allí: apngImage.DefaultFrameTime = (uint)FrameDuration;

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

        // Limpieza porque la imagen contiene un cuadro por defecto
        apngImage.RemoveAllFrames();

        // agrega el primer cuadro
        apngImage.AddFrame(sourceImage);

        // agregar marcos intermedios
        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);
        }

        // agrega el último cuadro
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

Ver también


AddFrame(RasterImage, uint)

Agrega un nuevo marco al final de la propia colección de marcos. El contenido del nuevo marco se rellenará a partir de la imagen especificada.

public void AddFrame(RasterImage frameImage, uint frameTime)
ParámetroEscribeDescripción
frameImageRasterImageLa imagen del marco.
frameTimeUInt32La duración del cuadro, en milisegundos.

Excepciones

excepcióncondición
ArgumentNullExceptionframeImage es nulo.

Ver también