استخراج إطارات GIF

استخرج الإطارات الكاملة المركبة من GIF محليًا، ونزّل إطارًا بصيغة PNG أو كل الإطارات مع بياناتها في ZIP.

ملف GIF واحد حتى 1 MiB، وحتى 32 إطارًا و512 بكسل للضلع. مجموع بكسلات الأجزاء ومجموع بكسلات الإطارات الكاملة لا يتجاوز كل منهما 2,000,000. مهلة القراءة والفك 5 ثوانٍ، ولكل تصدير مهلة مستقلة 5 ثوانٍ. PNG حتى 2 MiB؛ وZIP كاملًا بالبيانات والتأطير حتى 8 MiB. هذه الحدود ليست قياسًا لكل ذاكرة المتصفح.

كل PNG إطار مركب كامل، مع لوحات الألوان المحلية والشفافية والإزالة 0–3. اختر خلفية GIF المنطقية أو لوحة شفافة صراحة؛ قد تختلف البكسلات بعد الإزالة 2. لا معاينة حركة أو تطبيع لمدة التشغيل. يبقى الصفر مختلفًا عن المدة الغائبة.

يدعم نطاقًا محدودًا من GIF87a/89a فقط. تُرفض Plain Text وطلب إدخال المستخدم ونسبة البكسل غير الصفرية والامتدادات أو التطبيقات المجهولة وأوامر التحكم المكررة أو المعلقة والإزالة 4–7. يقبل امتداد NETSCAPE2.0 سليمًا واحدًا، ويتجاهل التعليقات بعد فحص حدودها. ZIP من نوع STORE بأسماء frame-001.png… وmetadata.json. البكسلات مركبة؛ لا تُصدّر بايتات GIF الأصلية أو تعليقاته.

لا رفع أو تخزين تلقائي. الإلغاء ينهي العامل المملوك ويوقف FileReader. ترميز PNG الأصلي لا يتوقف بالقوة؛ تبقى الجلسة المشتركة مشغولة حتى callback وتحرير Canvas، حتى بعد الإلغاء أو انتهاء المهلة. أعد المحاولة بعد ذلك. قد يؤخر تعليق التبويب استجابة المهلة.

طريقة الاستخدام

اختر الملف والسياسة ثم اضغط استخراج الإطارات. اختر رقم الإطار لمعاينة الصورة الكاملة الثابتة، واقرأ المدة الخام والإزالة في الجدول. نزّل PNG المختار أو ZIP لكل الإطارات. تغيير الملف أو الخلفية يمحو النتيجة القديمة. لا رفع أو تخزين تلقائي، والملف الأصلي لا يتغير.

مثال عملي

إذا رسم إطار أول الشاشة باللون الأحمر ثم رسم الثاني مربعًا أخضر صغيرًا، يحتوي PNG الثاني الشاشة الحمراء والمربع معًا، لا المربع وحده. عند الإزالة 2 تعاد منطقة الإطار السابق إلى خلفية GIF المنطقية أو الشفافية بحسب اختيارك؛ لذلك قد تختلف النتيجتان. الإزالة 3 تستعيد البكسلات السابقة قبل رسم الإطار التالي.

حدود الدعم

دعم محدود لـ GIF87a/89a ولوحات ألوان عامة ومحلية وinterlace وشفافية وإزالة 0–3. تُرفض Plain Text وطلب إدخال المستخدم ونسبة البكسل غير الصفرية والامتدادات المجهولة وطرق الإزالة 4–7 وأوامر التحكم المكررة أو المعلقة؛ تقبل NETSCAPE2.0 سليمة واحدة. التعليقات مقيدة ثم متجاهلة. metadata.json يحفظ version=1 والأبعاد والسياسة وrepeatCount الخام وأسماء PNG ومددها الخام بالـcentiseconds وإزالتها. null يعني غياب القيمة، والصفر محفوظ: delay=0 لا يتحول إلى 100 ms، وrepeatCount=0 يعني التكرار غير المحدود في امتداد NETSCAPE دون تكرار بيانات الإطارات. لا تشغيل للرسوم المتحركة أو حفظ لكل بايتات المصدر. أسماء الملفات ثابتة وZIP من نوع STORE دون ضغط. PNG يخرج عبر Canvas الأصلي؛ اختبارات البكسلات لا تعني حفظ بايتات PNG نفسها بين المتصفحات.

أسئلة شائعة

لماذا قد تبقى الجلسة مشغولة بعد الإلغاء؟

FileReader قابل للإيقاف والعامل قابل للإنهاء، لكن callback ترميز PNG الأصلي لا يمكن قتله. يُرفض ناتجه المتأخر وتبقى الجلسة المشتركة محجوزة حتى تحرير Canvas؛ لا تبدأ عملية أخرى فوق المورد المتأخر. أعد المحاولة بعد انتهائه. قد تتأخر استجابة المهلة عند تعليق المتصفح. حدود البايتات والبكسلات والعمل لا تمثل قياسًا أو ضمانًا لكل ذاكرة المتصفح.

أدوات مرتبطة