AddFrame

AddFrame()

Fügt einen neuen Rahmen am Ende der eigenen Rahmensammlung hinzu. Ein neuer Rahmen wird entsprechend der Größe des aktuellen Bildes erstellt.

public ApngFrame AddFrame()

Rückgabewert

Der neu erstellte APNG-Frame.

Siehe auch


AddFrame(RasterImage)

Fügt einen neuen Rahmen am Ende der eigenen Rahmensammlung hinzu. Der Inhalt des neuen Rahmens wird aus dem angegebenen Bild gefüllt.

public void AddFrame(RasterImage frameImage)
ParameterTypBeschreibung
frameImageRasterImageDas Rahmenbild.

Ausnahmen

AusnahmeBedingung
ArgumentNullExceptionframeImage ist null.

Beispiele

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


AddFrame(RasterImage, uint)

Fügt einen neuen Rahmen am Ende der eigenen Rahmensammlung hinzu. Der Inhalt des neuen Rahmens wird aus dem angegebenen Bild gefüllt.

public void AddFrame(RasterImage frameImage, uint frameTime)
ParameterTypBeschreibung
frameImageRasterImageDas Rahmenbild.
frameTimeUInt32Die Framedauer in Millisekunden.

Ausnahmen

AusnahmeBedingung
ArgumentNullExceptionframeImage ist null.

Siehe auch