عرض صور بتقنية Ultra HDR

يتيح تنسيق الصورة "دقة HDR فائقة" للصور تخزين المزيد من المعلومات حول شدة الإضاءة، ما يؤدي إلى ظهور درجات وظلال أكثر تفصيلاً وألوانًا أكثر كثافة. يتيح Android استخدام صور بدقة HDR فائقة بدءًا من Android 14 (المستوى 34 من واجهة برمجة التطبيقات). إذا كان تطبيقك يعمل بهذه الإصدارات، من المهم ضبط التطبيق لعرض هذه الصور بشكل صحيح. من ناحية أخرى، إذا كان تطبيقك لا يعرض صورًا بدقة HDR فائقة، يمكنك توفير موارد الجهاز من خلال عدم تفعيل العرض بدقة HDR فائقة. توضّح هذه الصفحة كيفية التحقّق مما إذا كانت الرسومات متوافقة مع تقنية "دقة HDR فائقة" وكيفية عرض هذه الرسومات بشكل صحيح.

رسم يوضح محاكاة الفرق بين النطاق الديناميكي العادي والنطاق الديناميكي العالي. يوضِّح الرسم منظر طبيعي لسماء غائمة. ويتميّز النصف الأيمن الذي يحاكي النطاق العالي الديناميكية (HDR) بتأثيرات أكثر سطوعًا وظلالاً أغمق وألوانًا أكثر وضوحًا.
الشكل 1. هي محاكاة للفرق بين صور النطاق الديناميكي العادي (SDR) والصور ذات النطاق العالي الديناميكية (HDR). إذا كان الجهاز متوافقًا مع تقنية النطاق العالي الديناميكية، قد تظهر ظلال أغمق وإضاءة أكثر سطوعًا في الصور.

التحقق من توفّر خريطة اكتساب

تتضمّن الصور الفائقة الدقة خريطة اكتساب. تُستخدم خريطة الاكتساب لتحديد السطوع المتزايد لكل بكسل في الصورة. للتحقّق مما إذا كانت الصورة بتنسيق Ultra HDR، يجب تحويل الصورة أو الرسم القابل للرسم إلى رمز Bitmap ثم الاتصال بالرقم Bitmap.hasGainMap() (متوفّر في نظام التشغيل Android 14) للتأكّد من توفّر خريطة اكتساب.

ضبط النافذة لعرض دقة HDR فائقة

لعرض صور بدقة HDR فائقة مع النطاق الديناميكي الكامل، اضبط وضع ألوان النافذة على ActivityInfo.COLOR_MODE_HDR. ويمكنك إجراء ذلك من خلال استدعاء طريقة النافذة setColorMode(). (تتوفّر واجهات برمجة التطبيقات هذه من نظام التشغيل Android 8، ولكن لا يتم عرض الصور بتقنية "دقة HDR فائقة" إلا إذا كان الجهاز يعمل بنظام التشغيل Android 14 أو إصدار أحدث).

خلاصة ما سبق ذكره

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

Kotlin

val bitmap = /* Get Bitmap from Image Resource */
binding.imageContainer.setImageBitmap(bitmap)

// Set color mode of the activity to the correct color mode.
requireActivity().window.colorMode =
   if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT

Java

final Bitmap bitmap = /* Get Bitmap from Image Resource */
binding.imageContainer.setImageBitmap(bitmap);

// Set color mode of the activity to the correct color mode.
int colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
if (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR;
requireActivity().getWindow().setColorMode(colorMode);

مصادر إضافية

لمزيد من المعلومات حول صور HDR الفائقة، يمكنك الاطّلاع على المراجع الإضافية التالية: