अल्ट्रा एचडीआर इमेज फ़ॉर्मैट की मदद से, इमेज में रोशनी की इंटेंसिटी के बारे में ज़्यादा जानकारी सेव की जा सकती है. इससे हाइलाइट और शैडो ज़्यादा बारीकी से दिखते हैं. साथ ही, रंग ज़्यादा गहरे दिखते हैं. Android 14 (एपीआई लेवल 34) से, Android में अल्ट्रा एचडीआर इमेज की सुविधा उपलब्ध है. अगर आपका ऐप्लिकेशन इन वर्शन पर चल रहा है, तो इन इमेज को सही तरीके से दिखाने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करना ज़रूरी है. दूसरी ओर, अगर आपका ऐप्लिकेशन अल्ट्रा एचडीआर इमेज नहीं दिखा रहा है, तो अल्ट्रा एचडीआर डिसप्ले की सुविधा चालू न करके, डिवाइस के संसाधनों को सेव किया जा सकता है. इस पेज पर बताया गया है कि यह कैसे पता लगाया जाए कि ग्राफ़िक्स में अल्ट्रा एचडीआर की सुविधा काम करती है या नहीं. साथ ही, उन्हें सही तरीके से दिखाने का तरीका भी बताया गया है.
गैन मैप की मौजूदगी की जांच करना
अल्ट्रा एचडीआर इमेज में गेन मैप होता है. गेन मैप का इस्तेमाल, इमेज में हर पिक्सल की बढ़ी हुई चमक का पता लगाने के लिए किया जाता है. यह पुष्टि करने के लिए कि कोई इमेज अल्ट्रा एचडीआर फ़ॉर्मैट में है या नहीं, इमेज या ड्रॉएबल को Bitmap
में बदलें. इसके बाद, Bitmap.hasGainMap()
(Android 14 से उपलब्ध) को कॉल करके देखें कि उसमें गेन मैप है या नहीं.
अल्ट्रा एचडीआर में वीडियो दिखाने के लिए, अपनी विंडो कॉन्फ़िगर करना
अल्ट्रा एचडीआर इमेज को पूरी डाइनैमिक रेंज के साथ दिखाने के लिए, विंडो के कलर मोड को ActivityInfo.COLOR_MODE_HDR
पर सेट करें. इसके लिए, विंडो के setColorMode()
तरीके को कॉल करें. (ये एपीआई, Android 8 से उपलब्ध हैं. हालांकि, डिवाइस में Android 14 या इसके बाद का वर्शन होने पर ही, इमेज को अल्ट्रा एचडीआर क्वालिटी में दिखाया जाता है.)
यह रही पूरी जानकारी
यहां दिए गए कोड में, पूरी प्रोसेस दिखाई गई है. इस कोड में यह माना गया है कि इमेज को 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);
अन्य संसाधन
अल्ट्रा एचडीआर इमेज के बारे में ज़्यादा जानने के लिए, यहां दिए गए अन्य संसाधन देखें:
- वीडियो: Android पर अच्छी क्वालिटी का मीडिया कॉन्टेंट उपलब्ध कराना
- सैंपल ऐप्लिकेशन: अल्ट्रा एचडीआर में इमेज दिखाना
- अल्ट्रा एचडीआर इमेज फ़ॉर्मैट की खास बातें
- वीडियो: Android Developer Story: Instagram's early adoption of Ultra HDR transforms UX in only 3 months