AddFrame

AddFrame()

Kendi çerçeve koleksiyonunun sonuna yeni çerçeve ekler. Geçerli görüntünün boyutuna göre yeni bir çerçeve oluşturulur.

public ApngFrame AddFrame()

Geri dönüş değeri

Yeni oluşturulan APNG çerçevesi.

Ayrıca bakınız


AddFrame(RasterImage)

Kendi çerçeve koleksiyonunun sonuna yeni çerçeve ekler. Yeni çerçevenin içeriği belirtilen görüntüden doldurulur.

public void AddFrame(RasterImage frameImage)
ParametreTipTanım
frameImageRasterImageÇerçeve görüntüsü.

istisnalar

istisnaşart
ArgumentNullExceptionframeImage boş.

Örnekler

Aşağıdaki örnek, başka bir tarama tek sayfalı görüntüden APNG görüntüsünün nasıl oluşturulacağını gösterir.

[C#]

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

const int AnimationDuration = 1000; // 1 sn
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))
    {
        // Orada görüntü varsayılan çerçeve süresini ayarlamak mümkündür: apngImage.DefaultFrameTime = (uint)FrameDuration;

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

        // Görüntü varsayılan olarak bir kare içerdiğinden temizleme
        apngImage.RemoveAllFrames();

        // ilk kareyi ekle
        apngImage.AddFrame(sourceImage);

        // ara çerçeveler ekle
        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);
        }

        // son kareyi ekle
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

Ayrıca bakınız


AddFrame(RasterImage, uint)

Kendi çerçeve koleksiyonunun sonuna yeni çerçeve ekler. Yeni çerçevenin içeriği belirtilen görüntüden doldurulur.

public void AddFrame(RasterImage frameImage, uint frameTime)
ParametreTipTanım
frameImageRasterImageÇerçeve görüntüsü.
frameTimeUInt32Çerçeve süresi, milisaniye cinsinden.

istisnalar

istisnaşart
ArgumentNullExceptionframeImage boş.

Ayrıca bakınız