الانتقال إلى المحتوى الرئيسي
PulsarKit

لماذا لا تزال صورة JPEG المضغوطة تبدو سيئة

الصورة التي تبدو غير حادة بعد الضغط لا علاقة لها في الغالب بإعداد الضغط الذي اخترته. الدقة هي التي تفعل ذلك.

بقلم PulsarKit · ·

صورة المنظر الطبيعي نفسها مرتين: على اليسار إطار بأبعاد 800 × 450 بكسل مُدّد إلى أربعة أضعاف حجمه فصار غير حاد، وعلى اليمين الأصل بأبعاد 3000 × 2000 بكسل مصغّرًا إلى النصف ولا يزال حادًا

الضغط وتغيير الحجم رافعتان مختلفتان

من السهل أن تفترض أن أداة واحدة «تصغّر الصورة» تقوم بالمهمتين معًا، لكن الضغط وتغيير الحجم يعملان على شيئين مختلفين. أداة ضغط الصور تعيد ترميز البكسلات الموجودة أصلًا في الصورة بجودة أقل، فيخف الملف دون أن تتغير أبعاده إطلاقًا. صورة JPEG بأبعاد 3000×2000 مضغوطة بشدة تبقى صورة JPEG بأبعاد 3000×2000، لكنها أقل حدة فقط. أما تغيير حجم الصورة فيغيّر عدد البكسلات في الصورة من الأساس. والصورة التي تبدو ضبابية بعد «ضغطها» تكون في كثير من الأحيان صورة غُيّر حجمها، وعادةً على يد تطبيق تعامل معها قبل ذلك، لا صورة ضُغطت بإفراط.

ما الذي تغيّره مستويات الضغط

أداة الضغط التي تعمل على JPEG أو WebP أو AVIF لا تفعل في الحقيقة إلا أن تختار رقمًا للجودة بين 0 و100 وتسلّمه إلى المرمِّز. إعداد الجودة القريب من 85 يكاد لا يختلف بصريًا عن الأصل، مع انخفاض معتدل في الحجم. وعند 70 تستقر معظم الصور العادية دون تغيّر مرئي، وهو إعداد افتراضي معقول. أما 55 فأقل حدة بشكل ملحوظ ويظهر الفرق عند التدقيق، خاصة في الأنسجة الدقيقة مثل الشعر وأوراق الشجر، لذا يناسب صورة مصغّرة أكثر من صورة رئيسية في أعلى الصفحة. ولا يوجد في PNG منزلق للجودة أصلًا، لأنها صيغة بلا فقدان بحكم تعريفها. «المستوى» في PNG يتحكم بدلًا من ذلك في مقدار الجهد الذي يبذله المحسِّن بلا فقدان لإعادة تعبئة البكسلات نفسها بكفاءة أكبر.

ضغط صورة مضغوطة أصلًا يزيد الأمر سوءًا لا تحسّنًا

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

السبب الحقيقي لضعف الحدة هو الدقة في الغالب

تمديد صورة صغيرة لتملأ مساحة أكبر لا يضيف تفاصيل لم تُلتقط أصلًا. إنه يوزّع البكسلات الموجودة على مساحة أكبر، فتبدو النتيجة غير حادة مهما ارتفع إعداد جودة الضغط. لهذا تمنع الأدوات افتراضيًا التكبير إلى ما بعد الدقة الأصلية. تكبير الصورة دون أن ينتبه أحد سبب لنتيجة «ضبابية» أشيع بكثير من أي إعداد للضغط، ولا يصلح أي تحريك لمنزلق الجودة صورة تُعرض ببساطة أكبر من عدد البكسلات التي فيها.

الترتيب الذي ينجح

غيّر الحجم أولًا، إلى الأبعاد التي ستُعرض بها الصورة بالضبط، ثم اضغطها ثانيًا بمستوى جودة معتدل يناسب الغرض من الصورة. أما الترتيب المعاكس، أي الضغط أولًا ثم تغيير الحجم لاحقًا في مكان آخر من سلسلة لا تتحكم فيها، فهو بالضبط ما يجعل صورة معقولة تمامًا بجودة 70 تنتهي ممددة إلى ضعف حجمها، ثم يُلام على ذلك الخطوة الخطأ. اضبط أبعاد البكسلات أولًا، وسيبدو إعداد ضغط متوسط أفضل من إعداد بأعلى جودة طُبّق على صورة لم تكن بالحجم الصحيح من البداية. وإذا كانت الوجهة تقبل الصيغة، فإن تحويل إلى WebP يقتطع ربعًا آخر من حجم النتيجة بالجودة نفسها.

أخطاء شائعة تجعل الصورة غير حادة

معظم الصور غير الحادة تأتي من واحدة من أربع عادات، وليس منزلق الجودة واحدة منها. الأولى أن تترك التخطيط يمدد الصورة: صورة عرضها 800 بكسل توضع في خانة عرضها 1600 بكسل على شاشة عالية الكثافة يكبّرها المتصفح، وهذا بالضبط التكبير الذي ترفض أداة تغيير الحجم القيام به افتراضيًا. الثانية الضغط مرتين. صورة صُدّرت من تطبيق على الهاتف بإعداد منخفض ثم مُرّرت على أداة ضغط مرة أخرى تفقد التفاصيل في الخطوتين، والجولة الثانية توفّر أقل بكثير من الأولى، لأن ضغط الكاميرا نفسها أخذ البايتات السهلة. الثالثة اختيار JPEG لنوع غير مناسب من الصور. لقطات الشاشة والرسوم البيانية وكل ما فيه نص أو حواف حادة تظهر حوله تموجات حول الحروف بأي جودة مع فقدان، بينما تحافظ PNG أو WebP بلا فقدان على تلك الحواف كما هي، وغالبًا ما تخزن WebP بلا فقدان البكسلات نفسها في ملف أصغر من PNG. الرابعة الحكم على النتيجة وهي مصغّرة على الشاشة. الصورة المصغّرة تخفي كل شيء، فقارن بتكبير 100% على التفصيل الذي يهمك، كالشعر وأوراق الشجر والخط الصغير، قبل أن تقرر أن الإعداد جيد بما يكفي. أصلح هذه الأربع، وسيصعب أن ترى الفرق بين الجودة 70 والجودة 85.

مثال عملي بالأرقام

خذ صورة من الهاتف مباشرة: 4000 في 3000 بكسل، أي اثنا عشر مليون بكسل، ومقصدها عمود في صفحة عرضه 1200 بكسل. تغيير حجمها إلى 1200 في 900 يترك 1.08 مليون بكسل، أي أقل من الأصل بإحدى عشرة مرة، وهذا التصغير وحده يقلّص الملف أكثر بكثير مما يستطيعه أي إعداد ضغط، قبل أن تُمسّ الجودة أصلًا. تصغّر أداة تغيير حجم الصورة الصورة بمرشح Lanczos3، الذي يحافظ على حدة الحواف حيث يطمسها مرشح صندوقي بسيط؛ وهي تطبّق وسم الاتجاه الذي سجله الهاتف أولًا، فتأتي النتيجة معتدلة، ولا تنقل البيانات الوصفية للكاميرا. بعد ذلك تأخذ ضغط الصور بالمستوى المتوازن، أي الجودة 70، الملف المصغّر إلى حجم أقل مرة أخرى دون أن تغيّر بُعدًا واحدًا من أبعاده بالبكسل. وإذا لم يكن الملف المعاد ضغطه أصغر مما دخل، يعود الأصل كما هو وتقول الصفحة ذلك، بدل أن تسلّمك نسخة مختلفة تقنيًا. وإذا كانت الوجهة تقبل WebP، يمكن أن تحل تحويل إلى WebP محل هذه الخطوة الثانية: بجودتها الافتراضية 80 تبدو صورة WebP مثل JPEG بجودة 90 وتزن نحو الثلث أقل. لاحظ ما يفعله الترتيب: عدد البكسلات يُحسم أولًا، فيعمل إعداد الجودة على الصورة التي ستُعرض فعلًا، لا على صورة ستُصغَّر مرة أخرى لاحقًا.

الأدوات المستخدمة في هذه المقالة

اقرأ أيضًا