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