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

अल्ट्रा एचडीआर इमेज फ़ॉर्मैट की मदद से, इमेज में रोशनी की तीव्रता के बारे में ज़्यादा जानकारी सेव की जा सकती है. इससे हाइलाइट और शैडो ज़्यादा बेहतर दिखते हैं. साथ ही, रंग भी ज़्यादा असरदार होते हैं. 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);

अन्य संसाधन

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