يعمل تنسيق الصور بدقة HDR فائقة على ترميز معلومات الإضاءة التي تتيح للأجهزة عرض صور أكثر سطوعًا بألوان أكثر كثافة. عندما يعدّل تطبيقك صورة بنطاق عالي الديناميكية للغاية، يجب الحرص على الاحتفاظ بمعلومات الإضاءة هذه. وهذا مهم حتى إذا كان جهاز المستخدم لا يتيح عرض صورة بدقة HDR الفائقة بكثافة كاملة. بعد كل شيء، قد يشارك المستخدم صورته مع شخص يستخدم جهازًا متوافقًا مع تقنية Ultra HDR، أو قد يحفظ تلك الصورة وينظر إليها مرة أخرى على جهاز جديد بعد مرور سنوات.
والخبر السار هو أنّ معظم طرق تعديل ملفات الصور النقطية على Android متوافقة مع تنسيق الصور بدقة HDRفائقة. إذا كنت بصدد إجراء تعديلات أساسية على صورة، مثل اقتصاصها أو تدويرها، يمكنك استخدام طرق Android العادية لإجراء ذلك، وستحصل في النهاية على صورة ذات نطاق عالي جدًا من الديناميكية بالأبعاد أو الاتجاه الجديدَين.
تكون المهمة أكثر تعقيدًا إذا كنت تعدّل محتوى الصورة. في هذه الحالات، تحتفظ طرق التعديل العادية بمعلومات السطوع في الصورة القديمة، وقد لا تكون تلك المعلومات على النحو الذي تريده. في هذه الحالات، قد تحتاج إلى تعديل أو إزالة خريطة التحصيل (التي تشفِّر معلومات السطوع في الصورة) للحصول على النتيجة الصحيحة.
نظرة عامة على تنسيق "دقة HDR الفائقة"
يمكنك الاطّلاع على وصف مفصّل لتنسيق الصور بدقة HDR الفائقة في مواصفات الصور بدقة HDR الفائقة. من المهم معرفة أنّ الصور بدقة HDR الفائقة تحتوي على كلّ من الصورة الأساسية وخريطة الكسب.
- تحتوي الصورة الأساسية على معلومات اللون لكل بكسل من الصورة.
- خريطة الكسب هي صورة JPEG عادية بنسبة العرض إلى الارتفاع نفسها التي تتسم بها الصورة الأساسية، ولكن ليس بالضرورة أن تكون أبعاد البكسل متطابقة. يحدد كل بكسل من خريطة الاكتساب إضاءة الجزء المقابل من الصورة الأساسية.
يمكن أن تكون خريطة الكسب إما بالأبيض والأسود أو بالألوان. إذا كانت خريطة الكسب ملونة، تحدِّد كل قناة لون على خريطة الكسب مستوى الإضاءة لتلك القناة على الجزء المقابل من الصورة الأساسية. إذا كانت خريطة الكسب ذات تدرج رمادي، يحدِّد كل بكسل من خريطة الكسب مستوى الإضاءة في جميع قنوات الألوان الثلاثة في هذا الجزء من الصورة الأساسية.
يجب أن تتطابق أبعاد خريطة الكسب مع أبعاد الصورة الأساسية، ولكن ليس بالضرورة أن تتطابق أبعاد البكسل. في الواقع، عندما تنشئ منصة Android صورًا بتقنية Ultra HDR، فإنّها تنشئ خريطة مكاسب بعرض وارتفاع أصغر مقارنةً بالصورة الأساسية، ما يجعل حجم الملف أصغر بكثير، ولكنه يظل يُشفِّر معلومات كافية للحصول على نتيجة جيدة. وهذا يعني أنّ كل بكسل في خريطة الكسب قد يخزّن معلومات الإضاءة لعدة بكسل في الصورة الأساسية.
التعديلات الأساسية في ميزة "دقة HDR الفائقة"
في حال استخدام واجهات برمجة التطبيقات Bitmap
في Android لإجراء تحولات dasar في صورة Ultra HDR، ستُجري الطرق التغييرات المناسبة على خريطة الكسب. يمكن تنفيذ العمليات التالية على Bitmap
:
- التدوير: في حال تدوير صورة بدقة HDR فائقة، ستؤدي الطريقة إلى تدوير منحنى الاستفادة أيضًا.
- اقتصاص: في حال اقتصاص صورة بدقة HDR فائقة، يتم اقتصاص خريطة الاكتساب بشكل مناسب.
- الحجم: في حال تغيير حجم صورة بدقة HDR فائقة، تعمل الطريقة على تغيير حجم خريطة الكسب لتكون نصف عرض الصورة الأساسية التي تم تغيير حجمها ونصف ارتفاعها.
وفي كل حالة، يتم الاحتفاظ بمعلومات السطوع.
التعديلات المتقدّمة في ميزة "دقة HDR الفائقة"
إذا أجريت تعديلات أكثر تفصيلاً على صورة Ultra HDR، يتم الاحتفاظ بخريطة الكسب بدون تغيير، ما قد لا يمنحك النتائج التي تريدها.
تشمل التعديلات الشائعة التي قد تؤدي إلى حدوث ذلك ما يلي:
- إضافة الملصقات أو الرموز التعبيرية: سيكون للملصق المُضاف قيم السطوع ودرجة سطوع اللون نفسها المستخدَمة في المنطقة التي تم لصقه فيها.
- تراكب صورة ثانية: تستخدم الصورة الجديدة معلومات السطوع ودرجة سطوع الألوان في المحتوى الذي تظهر على سطحه.
- إضافة فلاتر: قد لا تكون معلومات خريطة الكسب القديمة مناسبة للصورة الأساسية المعدَّلة.
في كل حالة، يتم الاحتفاظ بمعلومات السطوع ودرجة سطوع الألوان القديمة، ولكنها قد لا تكون مناسبة للصورة المعدلة.
إذا كانت خريطة الكسب الأصلية مناسبة للصورة المعدَّلة، ليس عليك اتّخاذ أي إجراء. إذا كنت تريد تعديل خريطة الكسب، اتّبِع سير العمل المعتاد:
- اجلب خريطة التحصيل الحالية للصورة من خلال استدعاء الرمز
Bitmap.getGainmap()
وتخزينه مؤقتًا. - عدِّل الصورة الأساسية على النحو المطلوب.
إجراء التعديلات المناسبة على خريطة المكاسب المخزّنة مؤقتًا على سبيل المثال، إذا لصقت رمزًا تعبيريًا في الصورة الأساسية، يمكنك ضبط الجزء المقابل من خريطة الاكتساب على قيمة محايدة، مثل
Color.GRAY
.تطبيق خريطة الكسب المعدَّلة على الصورة مرة أخرى من خلال استدعاء
Bitmap.setGainmap()
مصادر إضافية
لمزيد من المعلومات حول الصور بدقة HDR فائقة، اطّلِع على المراجع الإضافية التالية: