يتيح تنسيق الصورة "دقة HDR فائقة" للصور تخزين المزيد من المعلومات حول شدة الإضاءة، ما يؤدي إلى الحصول على نقاط بارزة وظلال أكثر تفصيلاً، وألوانًا أكثر كثافة. يتيح نظام Android استخدام الصور بدقة HDR الفائقة بدءًا من الإصدار 14 (المستوى 34 لواجهة برمجة التطبيقات). إذا كان تطبيقك يعمل على هذه الإصدارات، من المهم ضبط إعدادات تطبيقك لعرض هذه الصور بشكل صحيح. من ناحية أخرى، إذا كان تطبيقك لا يعرض صورًا بدقة HDR فائقة، يمكنك توفير موارد الجهاز من خلال عدم تفعيل ميزة "دقة HDR فائقة". توضّح هذه الصفحة كيفية التحقّق مما إذا كانت الرسومات متوافقة مع Ultra HDR وكيفية عرضها بشكل صحيح.
التحقّق من توفّر خريطة مكاسب
تتضمّن الصور الفائقة الدقة خريطة اكتساب. يتم استخدام خريطة الكسب
لتحديد السطوع المتزايد لكل بكسل في الصورة. للتحقّق مما إذا كانت الصورة بتنسيق Ultra HDR، يجب تحويل الصورة أو الرسم القابل للرسم إلى رمز
Bitmap
ثم الاتصال بالرقم Bitmap.hasGainMap()
(متوفّرة في الإصدار 14 من نظام التشغيل Android) للتأكّد من أنّها تتضمّن خريطة اكتساب.
ضبط النافذة لعرض دقة HDR الفائقة
لعرض صور بدقة HDR فائقة بالنطاق الديناميكي الكامل، اضبط وضع
الألوان في النافذة على ActivityInfo.COLOR_MODE_HDR
. يمكنك إجراء ذلك من خلال استدعاء setColorMode()
للوّحة. (تتوفّر واجهات برمجة التطبيقات هذه
بدءًا من الإصدار 8 من نظام التشغيل Android، ولكن لا يتم عرض الصور بدقة HDR فائقة ما لم يكن
الجهاز يعمل بالإصدار 14 من نظام التشغيل Android أو إصدار أحدث).
خلاصة ما سبق ذكره
يوضّح الرمز البرمجي التالي شكل العملية بأكملها. يفترض هذا الرمز البرمجي أنّه تم تحميل صورة
إلى ملف Bitmap، ويتحقّق مما إذا كانت الصورة تحتوي على خريطة مكاسب. في هذه الحالة، سيغيِّر الرمز
وضع ألوان النافذة إلى 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 فائقة، اطّلِع على المراجع الإضافية التالية:
- فيديو: توفير تجارب وسائط عالية الجودة على Android
- مثال على التطبيق: عرض دقة HDR الفائقة
- مواصفات تنسيق الصور بدقة HDR الفائقة
- فيديو: قصة مطوّر تطبيقات Android: تحسين تجربة المستخدم في Instagram خلال 3 أشهر فقط من خلال استخدام ميزة "دقة HDR الفائقة"