لماذا تدور الصورة أو تنقلب بعد الرفع؟ فهم EXIF Orientation
الصورة قد تبدو مستقيمة في الهاتف بينما ترتيب البكسلات المخزن داخل الملف مختلف. ما يجعلها تظهر بالشكل الصحيح هو قيمة اتجاه داخل EXIF يقرأها التطبيق. عندما تضيع هذه المعلومة أو تُفسَّر بطريقة مختلفة، تظهر المفاجأة بعد الرفع.
إذا التقطت صورة عمودية ثم وجدتها جانبية بعد تحويلها أو رفعها، فالملف ليس بالضرورة تالفًا. أحيانًا كان التطبيق الأول «يصحح» العرض اعتمادًا على EXIF، بينما التطبيق الثاني قرأ البكسلات كما هي أو فقد وسم الاتجاه أثناء المعالجة.
هناك شيئان مختلفان: ترتيب البكسلات وتعليمات العرض
كاميرا الهاتف لا تحتاج دائمًا إلى إعادة كتابة كل بكسلات الصورة عندما تمسك الجهاز عموديًا أو أفقيًا. يمكن للملف أن يحتفظ بترتيب معين للبكسلات، ثم يسجل وسم Orientation داخل بيانات EXIF ليخبر العارض كيف ينبغي تقديم الصورة للمستخدم.
البكسلات مخزنة بترتيب واحد. لو تجاهلت كل metadata قد تراها جانبية أو مقلوبة.
قيمة تصف كيف ينبغي تدوير الصورة أو عكسها حتى تظهر بالاتجاه المقصود.
معيار Exif يعرّف ثمانية أوضاع للاتجاه، وليس أربعة دورانات فقط. بعض القيم تتضمن انعكاسًا أفقيًا مع دوران. لهذا صورة تبدو «مرآتية» لا تُحل دائمًا بتدوير 90 أو 180 درجة.
المشكلة غالبًا تظهر في منتصف سلسلة المعالجة
المتصفح الحديث يستطيع استخدام معلومات EXIF في اتجاه الصورة؛ خاصية CSS image-orientation تجعل القيمة الافتراضية from-image، أي الاستفادة من الاتجاه الموجود في الملف. لكن الصورة قد تمر قبل أن تصل إلى المتصفح بمراحل أخرى: رفع، ضغط، تحويل إلى WebP أو AVIF، إنشاء نسخة مصغرة، أو معالجة عبر مكتبة صور.
- الكاميرا تحفظ الصورة.البكسلات + metadata، ومنها Orientation عندما يكون موجودًا.
- تطبيق الهاتف يعرضها.يقرأ الاتجاه فتبدو الصورة طبيعية، ولذلك قد لا تعرف أن البكسلات نفسها مخزنة بصورة مختلفة.
- أداة الضغط أو التحويل تتدخل.قد تطبق الاتجاه فعليًا على البكسلات، أو تحتفظ بالوسم، أو تزيل metadata.
- الموقع ينشئ نسخة جديدة.النسخة المصغرة قد تتصرف بطريقة مختلفة عن الأصل إذا تغيرت البيانات أثناء المعالجة.
- المتصفح يعرض النتيجة.إذا لم يبق وسم اتجاه صحيح ولم تُدوَّر البكسلات فعليًا، ستظهر الصورة بالاتجاه الخاطئ.
حذف EXIF ليس علاجًا تلقائيًا للدوران
إزالة metadata قد تكون مفيدة لتقليل معلومات غير مطلوبة أو لحماية الخصوصية، خصوصًا إذا احتوى الملف على بيانات كاميرا أو موقع جغرافي. لكن وسم Orientation حالة خاصة: إذا كانت الصورة تعتمد عليه لتظهر مستقيمة، حذف الوسم قبل تدوير البكسلات فعليًا يترك الملف في وضعه الخام.
المعالجة الصحيحة
تقرأ الأداة Orientation، تطبق الدوران أو الانعكاس على البكسلات، ثم تحفظ نسخة اتجاهها الفعلي صحيح. بعد ذلك يمكن أن تصبح قيمة Orientation عادية أو تُزال لأنها لم تعد ضرورية للعرض.
المعالجة التي تصنع المشكلة
تحذف الأداة EXIF بالكامل، لكن لا تلمس البكسلات. التطبيق السابق كان يصلح العرض اعتمادًا على الوسم؛ النسخة الجديدة فقدت تلك التعليمات.
الأصل قد يكون صحيحًا بينما النسخة المصغرة ما زالت خاطئة
أنظمة إدارة المحتوى وخدمات الصور قد تنشئ نسخًا متعددة من الملف: صورة مصغرة للبطاقة، حجمًا متوسطًا للمقال، ونسخة محسنة لشاشة معينة. إذا صححت الأصل بعد إنشاء هذه النسخ، فليس مضمونًا أن تتغير النسخ القديمة تلقائيًا.
هناك أيضًا الكاش. قد تكون قد رفعت ملفًا جديدًا بالفعل بينما المتصفح أو CDN يعرض نسخة أقدم. لذلك لا تدور الصورة مرة ثانية مباشرة. افتح رابط الأصل، ثم رابط النسخة المصغرة إن أمكن، وقارن بينهما.
اختبر صورة واحدة قبل معالجة مجلد كامل
الصور القادمة من الهاتف قد لا تتصرف كلها بالطريقة نفسها، خصوصًا إذا كانت من أجهزة أو تطبيقات مختلفة. اختبار واحد مصمم جيدًا أوفر من إعادة رفع مئات الصور.
اختبار عملي من ست خطوات
- احتفظ بالملف الأصلي بلا تعديل.
- اختر صورة عمودية واضحة الاتجاه، ويفضل أن تحتوي عنصرًا يسهل معرفة أعلى الصورة من أسفلها.
- مررها عبر أداة الضغط أو التحويل التي ستستخدمها فعليًا.
- افتح النسخة الناتجة محليًا، ثم ارفعها إلى الموقع.
- افتح الأصل والنسخة المصغرة في متصفح مختلف أو جهاز آخر.
- إذا كان الاتجاه صحيحًا في كل مرحلة، استخدم المسار نفسه مع بقية الصور.
متى يكون التدوير اليدوي مناسبًا؟
إذا كنت تريد اتجاهًا بصريًا جديدًا من اختيارك، لا مجرد تصحيح لما سجلته الكاميرا، فالتدوير الفعلي للصورة منطقي. لكن إذا كانت المشكلة من EXIF، هدفك هو توحيد الملف بحيث يصبح اتجاه البكسلات نفسه صحيحًا ثم لا يعتمد العرض على تفسير مختلف بين الأدوات.
المصادر والمراجع
تم الرجوع إلى معيار Exif الحالي ومرجع سلوك المتصفح في التعامل مع اتجاه الصورة.
from-image يستخدم معلومات EXIF لتصحيح اتجاه الصورة عند العرض، وهو السلوك الافتراضي الحديث.