AddFrame

AddFrame()

يضيف إطارًا جديدًا إلى نهاية مجموعة الإطارات الخاصة . سيتم إنشاء إطار جديد وفقًا لحجم الصورة الحالية.

public ApngFrame AddFrame()

قيمة الإرجاع

إطار APNG المنشأ حديثًا.

أنظر أيضا


AddFrame(RasterImage)

يضيف إطارًا جديدًا إلى نهاية مجموعة الإطارات الخاصة . سيتم ملء محتويات الإطار الجديد من الصورة المحددة.

public void AddFrame(RasterImage frameImage)
معامليكتبوصف
frameImageRasterImageصورة الإطار.

استثناءات

استثناءحالة
ArgumentNullExceptionإطار الصورة فارغ.

أمثلة

يوضح المثال التالي كيفية إنشاء صورة APNG من صورة نقطية أخرى أحادية الصفحة.

[C#]

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

const int AnimationDuration = 1000; // 1 ثانية
const int FrameDuration = 70; // 70 مللي ثانية
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))
    {
        // من الممكن ضبط وقت الإطار الافتراضي للصورة هناك: apngImage.DefaultFrameTime = (uint) FrameDuration ;

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

        // التنظيف لأن الصورة تحتوي على إطار واحد افتراضيًا
        apngImage.RemoveAllFrames();

        // إضافة الإطار الأول
        apngImage.AddFrame(sourceImage);

        // إضافة إطارات وسيطة
        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);
        }

        // إضافة الإطار الأخير
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

أنظر أيضا


AddFrame(RasterImage, uint)

يضيف إطارًا جديدًا إلى نهاية مجموعة الإطارات الخاصة . سيتم ملء محتويات الإطار الجديد من الصورة المحددة.

public void AddFrame(RasterImage frameImage, uint frameTime)
معامليكتبوصف
frameImageRasterImageصورة الإطار.
frameTimeUInt32مدة الإطار بالمللي ثانية.

استثناءات

استثناءحالة
ArgumentNullExceptionإطار الصورة فارغ.

أنظر أيضا