حين تدير هاتفك على جانبه لالتقاط صورة، لا يدور المستشعر معه. تُسجَّل البكسلات باتجاه المستشعر نفسه، أيًّا كان اتجاهه المادّي، ثم تكتب الكاميرا ملاحظة صغيرة في الملف: يجب عرض هذه مدارة 90° مع عقارب الساعة.
الصورة ليست مدارة. بل ملحق بها ملاحظة تطلب إدارتها. كل برنامج يفتح الملف عليه أن يلحظ تلك الملاحظة ويعمل بها، وما لا يفعل يعرض عليك البكسلات كما سُجّلت — على جانبها.
الوسم
يسكن في EXIF، كتلة بيانات الكاميرا الوصفية الملحقة بكل صورة تقريبًا، وهو رقم واحد اسمه Orientation له ثماني قيم معرَّفة.
أربع منها فقط شائعة: معتدلة، ومدارة 90° في اتجاه، ومدارة 90° في الاتجاه الآخر، ومقلوبة رأسًا على عقب. أما الأربع الأخرى فتصف نسخًا معكوسة كالمرآة، تنشأ من الكاميرات الأمامية ومن الماسحات، ولا يكاد شيء ينتجها عن قصد.
رقم واحد، وثماني احتمالات، وعرض إمّا صحيح وإمّا خاطئ بتسعين درجة تبعًا لأن البرمجية كلّفت نفسها النظر أو لم تكلّفها.
من يقرؤه ومن لا يقرؤه
المتصفّحات تقرؤه — منذ سنوات، في كل محرّك. معارض صور الهواتف تقرؤه. معاينات أنظمة التشغيل تقرؤه. محرّرات الصور الحديثة تقرؤه.
الذي لا يقرؤه بشكل موثوق هو كل ما هو أقدم، وكل ما هو بسيط، وقدر مفاجئ من المعالجة على جهة الخادم. فمكتبات الصور كثيرًا ما تفكّ ترميز البكسلات وتمرّرها دون الرجوع إلى الوسم، فخطّ رفع يغيّر مقاس صورتك ينتج مصغّرة تبدو صحيحة وهي على جانبها — أو أسوأ، مصغّرة معتدلة والأصل ليس كذلك، لأن مرحلة قرأت الوسم والتالية لم تقرأه.
لهذا تبدو المشكلة غير متّسقة ومثيرة للجنون. ليس الملف هو ما يتغيّر. بل سلسلة برامج تختلف على الملف نفسه.
الفخّ: نزع البيانات الوصفية
هذا يوقع من يفعل الصواب للسبب الصواب.
أنت تعرف أن الصور تحمل إحداثيات GPS وأرقام الكاميرات التسلسلية، فتنزع EXIF قبل الإرسال. تصرّف سليم. لكن وسم الاتجاه من EXIF، فتكون قد أزلت الملاحظة للتوّ — والصورة، التي لم تُدَر قطّ، صارت تُعرض على جانبها في كل مكان، ومنه الأماكن التي كانت تعرضها صحيحة.
الصورة لم تنكسر حين نزعتها. كانت على جانبها دائمًا؛ الملاحظة هي التي كانت تُقيمها.
أي أداة نزع جديرة بالاستعمال تعالج هذا: تطبّق التدوير على البكسلات أولًا، ثم تزيل الوسم. هذا ما ينبغي أن يعنيه نزع EXIF، ويستحقّ التحقّق لا الافتراض، لأن أداة تحذف الكتلة ببساطة ستقلب في صمت كل صورة طولية عندك على جانبها.
الإصلاح الذي ينجو من كل شيء
أدِر البكسلات.
ما إن تُخزَّن الصورة بالشكل الذي يجب أن تُعرض به، يصير وسم الاتجاه إمّا غائبًا وإمّا قائلًا «معتدلة»، وتتّفق كل البرامج — التي تقرأ الوسم والتي لا تنظر إليه أبدًا. لم يبق شيء يُختلف عليه.
التدوير تعديل حقيقي في الملف لا تغيير ملاحظة، وهذا هو المقصد بالضبط. افعله مرة، قبل رفع أي شيء إلى نظام لا تستطيع التنبّؤ بسلوكه، فلا تتكرّر المشكلة.
لملف JPEG تدوير بلا فقد — تُعاد ترتيب كتل 8×8 بدل إعادة ترميزها — لكنه لا يعمل إلا حين يكون البُعدان من مضاعفات الثمانية، وليست كل صورة كذلك. أما إعادة الترميز العادية بجودة عالية فتكلّف جيلًا واحدًا وتعمل دائمًا.
لماذا يصلحها رفع ويفسدها آخر
الموقع الذي يغيّر مقاس ما ترفعه قد فكّ ترميز البكسلات، ما يعني أنه اضطرّ إلى قرار بشأن الوسم. فإن طبّق التدوير وحفظ النتيجة معتدلة، صارت صورتك صحيحة إلى الأبد. أما إن تجاهل الوسم ونزع البيانات الوصفية أثناء الحفظ، فصارت صورتك على جانبها إلى الأبد.
كلا السلوكين شائع، ولا واحد منهما معلن، وهذا هو التفسير كلّه لماذا «تصلح» منصّة الصور و«تفسدها» أخرى.
الخلاصة
الوسم ملاحظة لا تدوير. البرمجية التي تقرؤه تعرض الصورة معتدلة؛ والتي لا تقرؤه تعرض ما سُجّل. نزع EXIF يزيل الملاحظة، فلا تنزع البيانات الوصفية إلا بشيء يطبّق التدوير أولًا.
فإن كان على صورة أن تعبر أنظمة لا تتحكّم فيها، فأدِر البكسلات قبل أن تغادر. تلك هي الحالة الوحيدة التي تعني الشيء نفسه للجميع.