अल्ट्रा एचडीआर में मौजूद इमेज में बदलाव करना

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

अच्छी बात यह है कि बिटमैप में बदलाव करने के लिए, Android के ज़्यादातर तरीके, Ultra HDR इमेज फ़ॉर्मैट के साथ काम करते हैं. अगर आपको किसी इमेज में काट-छांट या घुमाने जैसे बुनियादी बदलाव करने हैं, तो Android के स्टैंडर्ड तरीके काम आएंगे. इससे आपको नए डाइमेंशन या ओरिएंटेशन वाली अल्ट्रा एचडीआर इमेज मिलेगी.

अगर आप इमेज की सामग्री में बदलाव कर रहे हैं, तो यह काम मुश्किल है. ऐसे मामलों में, इमेज में बदलाव करने के स्टैंडर्ड तरीकों से, पुरानी इमेज की रोशनी की जानकारी सेव रहती है. ऐसा हो सकता है कि आपको यह जानकारी न चाहिए. ऐसे मामलों में, सही नतीजा पाने के लिए, आपको गेन मैप में बदलाव करना पड़ सकता है या उसे हटाना पड़ सकता है. गेन मैप, इमेज की रोशनी की जानकारी को कोड में बदलता है.

अल्ट्रा एचडीआर फ़ॉर्मैट के बारे में खास जानकारी

अल्ट्रा एचडीआर इमेज फ़ॉर्मैट के बारे में ज़्यादा जानकारी, अल्ट्रा एचडीआर इमेज के लिए तय की गई खास जानकारी में दी गई है. सबसे ज़रूरी बात यह समझना है कि अल्ट्रा एचडीआर इमेज में प्राइमरी इमेज और गेन मैप, दोनों शामिल होते हैं.

  • प्राइमरी इमेज में, इमेज के हर पिक्सल के रंग की जानकारी होती है.
  • गेन मैप एक स्टैंडर्ड JPEG इमेज होती है. इसका अनुपात, मुख्य इमेज के अनुपात जैसा ही होता है. हालांकि, ज़रूरी नहीं है कि पिक्सल डाइमेंशन भी एक जैसे हों. गेन मैप का हर पिक्सल, मुख्य इमेज के उस हिस्से की चमक बताता है.

गेन मैप ग्रेस्केल या रंगीन हो सकता है. अगर गेन मैप कलर में है, तो गेन मैप पर मौजूद हर कलर चैनल, प्राइमरी इमेज के उस हिस्से पर उस कलर चैनल की चमक बताता है. अगर गेन मैप ग्रेस्केल है, तो गेन मैप का हर पिक्सल, प्राइमरी इमेज के उस हिस्से पर मौजूद तीनों कलर चैनलों की चमक बताता है.

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

अल्ट्रा एचडीआर में, बुनियादी बदलाव करने के बारे में जानकारी

अगर अल्ट्रा एचडीआर इमेज में बुनियादी बदलाव करने के लिए, Android Bitmap एपीआई का इस्तेमाल किया जाता है, तो इन तरीकों से गेन मैप में ज़रूरी बदलाव किए जा सकते हैं. ये Bitmap कार्रवाइयां काम करती हैं:

  • घुमाएं: अल्ट्रा एचडीआर से इमेज घुमाने पर, गेन मैप को भी घुमाया जा सकता है.
  • काटना: अगर किसी अल्ट्रा एचडीआर इमेज को काटा जाता है, तो यह तरीका गेन मैप को सही तरीके से काटता है.
  • स्केल: अगर किसी अल्ट्रा एचडीआर इमेज को स्केल किया जाता है, तो यह तरीका गेन मैप को स्केल करता है, ताकि उसकी चौड़ाई और ऊंचाई, बदली गई प्राइमरी इमेज की चौड़ाई और ऊंचाई से आधी हो.

हर मामले में, चमक की जानकारी सेव की जाती है.

अल्ट्रा एचडीआर में, बेहतर बदलाव करने की सुविधा

अगर किसी अल्ट्रा एचडीआर इमेज में ज़्यादा बदलाव किए जाते हैं, तो गेन मैप में कोई बदलाव नहीं होता. इससे आपको अपने हिसाब से नतीजे नहीं मिल सकते.

इस स्थिति में हो सकने वाले सामान्य बदलावों में ये शामिल हैं:

  • स्टिकर या इमोजी जोड़ना: जोड़े गए स्टिकर की चमक और रंग में साफ़ तौर पर वही बदलाव होंगे जो उस हिस्से पर चिपकाए गए हैं.
  • दूसरी इमेज को ओवरले करना: नई इमेज, ओवरले किए जा रहे कॉन्टेंट की चमक और रंग की जानकारी का इस्तेमाल करेगी.
  • फ़िल्टर जोड़ना: हो सकता है कि बदली गई मुख्य इमेज के लिए, गैन मैप की पुरानी जानकारी सही न हो.

हर मामले में, रोशनी और रंग की चमक की पुरानी जानकारी को सेव किया जाता है. हालांकि, हो सकता है कि यह बदली गई इमेज के लिए सही न हो.

अगर ओरिजनल गेन मैप, एडिट की गई इमेज के लिए सही है, तो आपको कुछ करने की ज़रूरत नहीं है. अगर आपको अब गेन मैप में बदलाव करना है, तो सामान्य वर्कफ़्लो यह है:

  1. इमेज का मौजूदा गेन मैप फ़ेच करें. इसके लिए, Bitmap.getGainmap() को कॉल करें और उसे कैश मेमोरी में सेव करें.
  2. प्राइमरी इमेज में अपनी पसंद के मुताबिक बदलाव करें.
  3. कैश मेमोरी में सेव किए गए गेन मैप में, उसी तरह के बदलाव करें. उदाहरण के लिए, अगर आपने प्राइमरी इमेज पर कोई इमोजी चिपकाया है, तो गेन मैप के उस हिस्से को किसी सामान्य वैल्यू पर सेट किया जा सकता है, जैसे कि Color.GRAY.

  4. बदले गए गेन मैप को फिर से इमेज पर लागू करें. इसके लिए, Bitmap.setGainmap() को कॉल करें.

अन्य संसाधन

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