अल्ट्रा एचडीआर से जुड़ी इमेज दिखाना

अल्ट्रा एचडीआर इमेज फ़ॉर्मैट की मदद से, इमेज में रोशनी की तीव्रता के बारे में ज़्यादा जानकारी सेव की जा सकती है. इससे हाइलाइट और शैडो ज़्यादा बेहतर तरीके से दिखते हैं. साथ ही, रंग भी ज़्यादा असरदार होते हैं. Android 14 (एपीआई लेवल 34) से शुरू होने वाली अल्ट्रा एचडीआर इमेज के साथ काम करता है. अगर आपका ऐप्लिकेशन उन वर्शन पर चल रहा है, तो इन इमेज को सही तरीके से दिखाने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करना ज़रूरी है. वहीं दूसरी ओर, अगर आपके ऐप्लिकेशन में अल्ट्रा एचडीआर इमेज नहीं दिख रही हैं, तो अल्ट्रा एचडीआर डिसप्ले की सुविधा को चालू करके, डिवाइस के संसाधनों को सेव किया जा सकता है. इस पेज पर, यह पता करने का तरीका बताया गया है कि ग्राफ़िक्स अल्ट्रा एचडीआर की सुविधा पर काम करते हैं या नहीं. साथ ही, उन्हें ठीक से दिखाने का तरीका भी बताया गया है.

गेन मैप की मौजूदगी की जांच करना

अल्ट्रा एचडीआर इमेज में गेन मैप होता है. गेन मैप का इस्तेमाल, इमेज के हर पिक्सल की बढ़ी हुई चमक का पता लगाने के लिए किया जाता है. यह पुष्टि करने के लिए कि कोई इमेज अल्ट्रा एचडीआर फ़ॉर्मैट में है या नहीं, उस इमेज या ड्रॉ करने लायक इमेज को Bitmap में बदलें. इसके बाद, Bitmap.hasGainMap() (Android 14 और इसके बाद के वर्शन पर उपलब्ध) को कॉल करके देखें कि उसमें गेन मैप है या नहीं.

अल्ट्रा एचडीआर वीडियो दिखाने के लिए, अपनी विंडो को कॉन्फ़िगर करना

पूरी डाइनैमिक रेंज के साथ अल्ट्रा एचडीआर इमेज देखने के लिए, विंडो के कलर मोड को ActivityInfo.COLOR_MODE_HDR पर सेट करें. ऐसा करने के लिए, विंडो के setColorMode() तरीके को कॉल करें. (ये एपीआई Android 8 पर उपलब्ध हैं. हालांकि, इमेज अल्ट्रा एचडीआर में तब तक नहीं दिखती हैं, जब तक डिवाइस में 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);

अन्य संसाधन

अल्ट्रा एचडीआर इमेज के बारे में ज़्यादा जानने के लिए, यहां दिए गए अन्य संसाधन देखें: