ApngOptions

ApngOptions class

Das animierte PNG-Dateiformat options

public class ApngOptions : PngOptions

Konstrukteure

NameBeschreibung
ApngOptions()Default_Constructor

Eigenschaften

NameBeschreibung
BitDepth { get; set; }Die Bittiefe.
BufferSizeHint { get; set; }Ruft den Puffergrößenhinweis ab oder legt ihn fest, der als maximal zulässige Größe für alle internen Puffer definiert ist.
ColorType { get; set; }Ruft den Typ der Farbe ab oder legt ihn fest.
CompressionLevel { get; set; }Die PNG-Bildkomprimierungsstufe im Bereich von 0 bis 9, wobei 9 die maximale Komprimierung und 0 der Speichermodus ist.
DefaultFrameTime { get; set; }Ruft die Standard-Frame-Dauer ab oder legt sie fest.
Disposed { get; }Ruft einen Wert ab, der angibt, ob diese Instanz verworfen wird.
FilterType { get; set; }Ruft den beim Speichern der PNG-Datei verwendeten Filtertyp ab oder legt ihn fest.
FullFrame { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob [Vollbild].
MultiPageOptions { get; set; }Die mehrseitigen Optionen
NumPlays { get; set; }Ruft ab oder legt fest, wie oft die Animation wiederholt werden soll. 0 bedeutet Endlosschleife.
virtual Palette { get; set; }Ruft die Farbpalette ab oder legt sie fest.
ProgressEventHandler { get; set; }Ruft den Fortschrittsereignishandler ab oder legt ihn fest.
Progressive { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob dies der Fall istPngOptions ist progressiv.
virtual ResolutionSettings { get; set; }Ruft die Auflösungseinstellungen ab oder legt sie fest.
Source { get; set; }Ruft die Quelle zum Erstellen des Bildes ab oder legt sie fest.
VectorRasterizationOptions { get; set; }Ruft die Optionen für die Vektorrasterung ab oder legt sie fest.
override XmpData { get; set; }Ruft den XMP-Metadatencontainer ab oder legt ihn fest.

Methoden

NameBeschreibung
virtual Clone()Klont diese Instanz.
Dispose()Verwirft die aktuelle Instanz.

Beispiele

Das folgende Beispiel zeigt, wie das Dateiformat apng APNG aus einem anderen nicht animierten mehrseitigen Format exportiert wird.

[C#]

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

using (Image image = Image.Load("img4.tif")) {
    // Festlegen der Standard-Frame-Dauer
    image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
    image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}

Das folgende Beispiel zeigt, wie Sie in das APNG-Dateiformat exportieren.

[C#]

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

using (Image image = Image.Load("Animation1.webp")) {
    // Export in APNG-Animation mit unbegrenzten Animationszyklen als Standard
    image.Save("Animation1.webp.png", new ApngOptions());
    // Animationszyklen einrichten
    image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 Zyklen
}

Das folgende Beispiel zeigt, wie Sie ein APNG-Bild aus einem anderen einseitigen Rasterbild erstellen.

[C#]

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

const int AnimationDuration = 1000; // 1 Sek
const int FrameDuration = 70; // 70 ms
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 ist möglich, dort die Standard-Frame-Zeit des Bildes einzustellen: apngImage.DefaultFrameTime = (uint)FrameDuration;

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

        // Bereinigen, da das Bild standardmäßig einen Frame enthält
        apngImage.RemoveAllFrames();

        // ersten Frame hinzufügen
        apngImage.AddFrame(sourceImage);

        // Zwischenframes hinzufügen
        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);
        }

        // letzten Frame hinzufügen
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

Siehe auch