تصدير إطار من GIF بصيغة PNG: خطوة بخطوة
5 دقيقة للقراءة
الأسباب الحقيقية لاستخراج PNG من GIF
قد يبدو التحويل من GIF إلى PNG غريبًا للوهلة الأولى — فكلاهما عديم الفقد، وكلاهما يدعم الشفافية، وكلاهما تنسيق قديم. لكن لهذا التحويل عمليًا مجالات استخدام واضحة عدة.
الأول هو الرغبة في استخدام إطار واحد من ملف GIF متحرك بوصفه صورة ثابتة: صورة غلاف، أو معاينة، أو لقطة شاشة توثيقية. والثاني هو إدخال ملف GIF ساكن في سير عمل حديث — إذ تتعامل بعض المحرّرات والأنظمة مع GIF على نحو مشكِل لكونه تنسيقًا قائمًا على اللوحة اللونية، بينما يُفتح PNG مباشرةً بصيغة RGB. والثالث هو الرغبة في التخلص من الشفافية الثنائية في GIF والانتقال إلى حاوية تدعم الشفافية الناعمة.
ويستدعي هذا السبب الثالث انتباهًا، وسنشرح في الجزء التالي من المقال لماذا لا يعمل بالضبط كما تتوقع.
ماذا يحدث تقنيًا في التحويل
GIF تنسيق قائم على اللوحة اللونية. فيوجد في الملف جدول ألوان لا يتضمن أكثر من 256 لونًا. ويحمل كل بكسل رقم مدخلة في هذا الجدول بدلًا من قيمة اللون الحقيقية.
أما PNG فيخزّن قيم RGB مباشرة. وأثناء التحويل تُفك أرقام لوحة GIF وتُحوَّل إلى قيم ألوان حقيقية وتُحزَم بصيغة PNG حزمًا عديم الفقد.
والخبر السار هنا هو: يستطيع PNG تخزين الألوان الـ256 كلها دون مشكلة. أي أن تحويل ملف GIF ساكن إلى PNG عديم الفقد تمامًا. والمُخرَج مطابق للأصل بكسلًا ببكسل.
أما الخبر السيئ فهو: أن الصورة المصدر خُفِّضت على الأرجح إلى 256 لونًا عند إنتاج ذلك الملف بصيغة GIF. وقد ذهبت الألوان المُسقَطة في تلك اللحظة نهائيًا. والتحويل إلى PNG لا يستعيدها. فـ PNG يصون الـ256 لونًا القائمة صونًا تامًا، لكنه لا يستطيع إعادة إنتاج آلاف الألوان الضائعة.
التحويل خطوة بخطوة
1. حدّد ما إذا كان GIF متحركًا أم ساكنًا. فهذا يحدد مباشرة بقية المسار. افتح الملف في متصفح أو عارض وانظر. فإن كان ساكنًا فالعملية بسيطة؛ وإن كان متحركًا فسيلزمك اختيار إطار.
2. إذا كان متحركًا فاختر الإطار الصحيح. تأخذ معظم الأدوات الإطار الأول افتراضيًا. غير أن الإطار الأول في الحركات يكون عادةً أرضية فارغة أو مؤثر افتتاحي أو لحظة انتقال بلا معنى. شاهد الحركة وقرّر أي لحظة تمثّل الموضوع أفضل تمثيل. ففي حركة رسومية يكون ذلك عادةً الإطار الأخير، وفي حركة حركية يكون في مكان ما في الوسط.
3. افتح أداة التحويل من GIF إلى PNG واسحب ملفك وأفلته. وتنتهي العملية في ثوانٍ معدودة في ملفات GIF الساكنة.
4. افحص المُخرَج عند تكبير 100%. فإذا كنت آتيًا من ملف GIF ساكن فما ينبغي أن تراه هو الصورة ذاتها طبق الأصل. وإذا رأيت فرقًا فالمشكلة ليست في التحويل، بل على الأرجح في ملف GIF المصدر نفسه.
5. إذا وُجدت شفافية فتفحّص الحواف. فإذا كان ملف GIF لديك ذا خلفية شفافة، فانظر عن قرب إلى الحواف في مُخرَج PNG. والأرجح أنها ستبدو مسننة. وهذا ليس خطأ التحويل؛ ونشرح السبب في القسم التالي.
6. قيّم التشريط اللوني. فإذا كان GIF منتَجًا من محتوى فوتوغرافي فسترى تشريطًا أو نمطًا منقّطًا في مناطق مثل السماء أو التدرجات. وهذه آثار حد 256 لونًا وتبقى في PNG كما هي.
الشفافية: PNG لا يُجري تصحيحًا بأثر رجعي
هذا أكثر ما يُساء فهمه بشأن التحويل.
فشفافية GIF ثنائية. إذ يكون البكسل إما شفافًا تمامًا وإما معتمًا تمامًا؛ ولا توجد أي قيمة بينهما. ولهذا تبدو الحافة المستديرة أو المائلة مسننة كدرجات السلّم. ولا يسمح تصميم التنسيق بتصحيح ذلك.
أما قناة ألفا في PNG فتستطيع تخزين 256 مستوى شفافية مختلفًا لكل بكسل. فتصبح الانتقالات الناعمة من الظهور التام إلى الاختفاء التام ممكنة.
لكن هنا النقطة الحاسمة: هذه القدرة تعمل إلى الأمام. فـ PNG يمنحك إمكانية إنتاج حواف ناعمة، ولا يصلح الحواف المسننة القائمة. فإذا كان بكسل موسومًا في GIF بأنه شفاف تمامًا، بقي شفافًا تمامًا في PNG أيضًا. ولأن معلومات نصف الشفافية لم توجد قط لا يستطيع PNG اختراعها.
وإذا أردت حافة ناعمة فأمامك خياران: إعادة إنتاج الصورة من مصدرها الأصلي، أو معالجة الحواف يدويًا في محرّر بعد التحويل إلى PNG. أما التحويل نفسه فلا يفعل ذلك.
اختيار الإطار في ملف GIF متحرك
يتضمن ملف GIF المتحرك عشرات الإطارات، بل مئاتها أحيانًا. وPNG يخزّن صورة ساكنة واحدة. وبالتالي فإن التحويل عملية اختيار حتمًا.
والسلوك الافتراضي هو أخذ الإطار الأول عادةً، لكن هذا خيار سيئ في أغلب الأحيان. فالحركات تبدأ كثيرًا من أرضية فارغة أو من انتقال افتتاحي؛ ولهذا قد يكون الإطار الأول بلا معنى.
ومقاربة أفضل: شاهد الحركة واسأل "لو أردت وصف هذا الملف بصورة واحدة، أيها كنت سأستخدم". ففي حركة تحميل يكون ذلك إطارًا في الوسط، وفي حركة رسم بياني يكون الإطار الأخير، وفي ملف GIF تفاعلي تكون اللحظة التي يكون فيها التعبير أوضح ما يكون.
وإذا أردت صون الحركة صونًا كاملًا فإن PNG هدف خاطئ. فـ APNG يستطيع تخزين PNG متحرك، وWEBP يقدّم الحركة والضغط الكفؤ معًا ويتحرر من حد 256 لونًا في GIF أيضًا.
خلاصة القول
تحويل ملف GIF ساكن إلى PNG عديم الفقد تمامًا — إذ يخزّن PNG الألوان الـ256 في GIF كلها طبق الأصل. لكن هذا لا يستعيد الألوان الضائعة عند إنتاج GIF ولا ينعّم الحواف المسننة الناشئة عن الشفافية الثنائية في GIF. أما في ملف GIF متحرك فأنت مضطر إلى اختيار إطار واحد؛ فلا تثق بالإعداد الافتراضي، بل شاهد الحركة وحدّد الإطار الدال بنفسك.
الأسئلة الشائعة
هل يحدث فقد في الجودة عند تحويل ملف GIF ساكن إلى PNG؟
لا يحدث أي فقد في التحويل نفسه. فـ GIF يحمل 256 لونًا كحد أقصى في كل إطار، وPNG يستطيع تخزين هذه الألوان الـ256 كلها طبق الأصل، وبالتالي يكون المُخرَج مطابقًا للأصل بكسلًا ببكسل. غير أن ما ينبغي الانتباه إليه هو الآتي: إذا كانت الصورة المصدر قد خُفِّضت إلى 256 لونًا عند إنتاج GIF أول مرة، فإن الألوان المُسقَطة حينها لا تعود. فـ PNG يصون الحالة القائمة صونًا تامًا ولا يعوّض الخفض الذي حدث في الماضي.
ماذا يحدث للحركة إذا حوّلت ملف GIF متحرك إلى PNG؟
لا يستطيع PNG تخزين محتوى متحرك، وبالتالي تحصل نتيجةً للتحويل على إطار ساكن واحد. واختيار الإطار مهم؛ إذ تأخذ معظم الأدوات الإطار الأول افتراضيًا، بينما تكون الصورة الدالة في الحركة في مكان ما في الوسط عادةً. وإذا أردت صون الحركة فعليك استخدام تنسيق يدعم المحتوى المتحرك مثل APNG أو WEBP بدلًا من PNG.
لماذا تبدو الحواف الشفافة في GIF مسننة؟
شفافية GIF ثنائية: إذ يكون البكسل إما شفافًا تمامًا وإما معتمًا تمامًا، ولا قيمة بينهما. ولهذا يظهر شكل درجات السلّم في الحواف المائلة والمستديرة. أما PNG فيستطيع تخزين 256 مستوى شفافية مختلفًا لكل بكسل، غير أن هذه القدرة لا تعمل بأثر رجعي. فالتحويل إلى PNG لا ينعّم الحواف المسننة القائمة؛ وإذا أردت حافة ناعمة فعليك إعادة إنتاج الصورة أو تصحيح الحواف يدويًا.
هل يكون مُخرَج PNG أكبر أم أصغر من GIF؟
يتغير ذلك بحسب المحتوى وكلا الاتجاهين ممكن. ففي الرسوميات البسيطة ذات مساحات اللون المصمت الواسعة يخرج PNG عادةً قريبًا من GIF أو أصغر منه، لأن الضغط عديم الفقد في PNG بالغ الكفاءة في هذا النوع من المحتوى. في المقابل، فإن نمط الاهتزاز اللوني، أي مزج الألوان المنقّط، داخل GIF يُرهق ضغط PNG وقد يكبّر الملف. أما عند استخراج إطار واحد من ملف GIF متحرك فتحصل بطبيعة الحال على ملف أصغر بكثير.
جرّب ذلك الآن باستخدام GIF → PNG Dönüştür.
جرّب GIF → PNG Dönüştür