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