الفئة ApngOptions
محتويات
[
يخفي
]ApngOptions class
واجهة برمجة التطبيقات لإنشاء صيغة ملف صورة Animated PNG (Animated Portable Network Graphics) هي أداة ديناميكية للمطورين الذين يسعون لتوليد صور متحركة جذابة. مع خيارات قابلة للتخصيص مثل مدة الإطار وعدد مرات التكرار، تتيح هذه الواجهة ضبط المحتوى المتحرك وفقًا للاحتياجات المحددة. سواءً كنت تنشئ رسومات ويب جذابة أو مرئيات تفاعلية، يمكنك الاستفادة من هذه الواجهة لدمج صور APNG بسلاسة مع تحكم دقيق في معلمات الرسوم المتحركة.
public class ApngOptions : PngOptions
المنشئات
| الاسم | الوصف |
|---|---|
| ApngOptions() | يُنشئ مثلاً جديدًا من الفئة ApngOptions. |
الخصائص
| الاسم | الوصف |
|---|---|
| BitDepth { get; set; } | يحصل أو يعيّن قيم عمق البت في النطاق 1، 2، 4، 8، 16. |
| BufferSizeHint { get; set; } | الحصول على أو تعيين تلميح حجم المخزن المؤقت الذي يحدد الحد الأقصى المسموح به لجميع المخازن الداخلية. |
| ColorType { get; set; } | يحصل أو يضبط نوع اللون. |
| DefaultFrameTime { get; set; } | يحصل أو يعيّن مدة الإطار الافتراضية. |
| Disposed { get; } | يحصل على قيمة تشير إلى ما إذا كان هذا المثال تم التخلص منه. |
| virtual ExifData { get; set; } | الحصول على أو تعيين بيانات Exif. |
| FilterType { get; set; } | يحصل أو يعيّن نوع الفلتر المستخدم أثناء عملية حفظ ملف png. |
| FullFrame { get; set; } | يحصل أو يضبط قيمة تشير إلى ما إذا كان [full frame]. |
| KeepMetadata { get; set; } | يحصل على قيمة ما إذا كان يجب الاحتفاظ ببيانات تعريف الصورة الأصلية عند التصدير. |
| MultiPageOptions { get; set; } | خيارات الصفحات المتعددة |
| NumPlays { get; set; } | يحصل أو يعيّن عدد مرات تكرار الرسوم المتحركة. 0 تشير إلى تكرار لا نهائي. |
| virtual Palette { get; set; } | يحصل أو يضبط لوحة الألوان. |
| PngCompressionLevel { get; set; } | يحصل أو يعيّن مستوى ضغط PngImage. |
| ProgressEventHandler { get; set; } | يحصل أو يضبط معالج حدث التقدم. |
| Progressive { get; set; } | يحصل أو يعيّن قيمة تشير إلى ما إذا كان PngImage تقدميًا. |
| virtual ResolutionSettings { get; set; } | يحصل أو يضبط إعدادات الدقة. |
| Source { get; set; } | يحصل أو يضبط المصدر لإنشاء الصورة فيه. |
| VectorRasterizationOptions { get; set; } | يحصل أو يضبط خيارات تحويل المتجه إلى نقطية. |
| virtual XmpData { get; set; } | يحصل أو يضبط حاوية بيانات تعريف XMP. |
الطرق
| الاسم | الوصف |
|---|---|
| virtual Clone() | ينشئ نسخة عضوية من هذه الحالة. |
| Dispose() | يتخلص من المثيل الحالي. |
| TrySetMetadata(IImageMetadataFormat) | يحاول تعيين مثيل metadata، إذا كان مثيل Image يدعم ويطبق مثيل IImageMetadataFormat. |
أمثلة
المثال التالي يوضح كيفية تصدير تنسيق ملف apng APNG من تنسيق متعدد الصفحات غير متحرك آخر.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using (Image image = Image.Load("img4.tif")) {
// إعداد مدة الإطار الافتراضية
image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}
المثال التالي يوضح كيفية التصدير إلى تنسيق ملف APNG.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using (Image image = Image.Load("Animation1.webp")) {
// تصدير إلى رسوم متحركة بصيغة APNG مع دورات رسوم متحركة غير محدودة كإعداد افتراضي
image.Save("Animation1.webp.png", new ApngOptions());
// إعداد دورات الرسوم المتحركة
image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 cycles
}
يوضح المثال التالي كيفية إنشاء صورة APNG من صورة نقطية صفحة واحدة أخرى.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Apng;
const int AnimationDuration = 1000; // 1 s
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))
{
// يمكن تعيين الوقت الافتراضي لإطار الصورة هناك: 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();
}
}
انظر أيضًا
- class PngOptions
- namespace Aspose.Imaging.ImageOptions
- assembly Aspose.Imaging