DefaultFrameTime

ApngOptions.DefaultFrameTime property

Obtiene o establece la duración del marco predeterminado.

public uint DefaultFrameTime { get; set; }

El valor de la propiedad

La duración predeterminada del cuadro, en milisegundos.

Ejemplos

El siguiente ejemplo muestra cómo exportar el formato de archivo apng APNG desde otro formato de varias páginas no animadas.

[C#]

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

using (Image image = Image.Load("img4.tif")) {
    // Configuración de la duración del cuadro por defecto
    image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500ms
    image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250ms
}

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