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

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

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

अल्ट्रा एचडीआर इमेज में गैन मैप होता है. गैन मैप का इस्तेमाल, इमेज में हर पिक्सल की बढ़ी हुई चमक का पता लगाने के लिए किया जाता है. यह पुष्टि करने के लिए कि कोई इमेज अल्ट्रा एचडीआर फ़ॉर्मैट में है या नहीं, इमेज या ड्रॉएबल को 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);

अन्य संसाधन

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