ApngOptions

ApngOptions class

Las opciones de formato de archivo PNG animado

public class ApngOptions : PngOptions

Constructores

NombreDescripción
ApngOptions()Constructor predeterminado

Propiedades

NombreDescripción
BitDepth { get; set; }La profundidad de bits.
BufferSizeHint { get; set; }Obtiene o establece la sugerencia de tamaño de búfer que se define como el tamaño máximo permitido para todos los búferes internos.
ColorType { get; set; }Obtiene o establece el tipo de color.
CompressionLevel { get; set; }El nivel de compresión de la imagen png en el rango de 0-9, donde 9 es la compresión máxima y 0 es el modo de almacenamiento.
DefaultFrameTime { get; set; }Obtiene o establece la duración del marco predeterminado.
Disposed { get; }Obtiene un valor que indica si esta instancia se desecha.
FilterType { get; set; }Obtiene o establece el tipo de filtro utilizado durante el proceso de guardado del archivo png.
FullFrame { get; set; }Obtiene o establece un valor que indica si [fotograma completo].
MultiPageOptions { get; set; }Las opciones multipágina
NumPlays { get; set; }Obtiene o establece el número de veces que se repite la animación. 0 indica un bucle infinito.
virtual Palette { get; set; }Obtiene o establece la paleta de colores.
ProgressEventHandler { get; set; }Obtiene o establece el controlador de eventos de progreso.
Progressive { get; set; }Obtiene o establece un valor que indica si estePngOptions es progresivo.
virtual ResolutionSettings { get; set; }Obtiene o establece la configuración de resolución.
Source { get; set; }Obtiene o establece la fuente para crear la imagen en.
VectorRasterizationOptions { get; set; }Obtiene o establece las opciones de rasterización de vectores.
override XmpData { get; set; }Obtiene o establece el contenedor de metadatos XMP.

Métodos

NombreDescripción
virtual Clone()Clona esta instancia.
Dispose()Elimina la instancia actual.

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 exportar al formato de archivo APNG.

[C#]

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

using (Image image = Image.Load("Animation1.webp")) {
    // Exportar a animación APNG con ciclos de animación ilimitados por defecto
    image.Save("Animation1.webp.png", new ApngOptions());
    // Configuración de ciclos de animación
    image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 ciclos
}

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