تعديل الصور بتقنية Ultra HDR

يعمل تنسيق الصور بتقنية HDR فائقة على ترميز معلومات السطوع التي تتيح للأجهزة عرض صور أكثر سطوعًا وألوانًا أكثر شدة. عندما يعدّل تطبيقك صورة "دقة HDR فائقة"، يجب الحرص على الحفاظ على معلومات السطوع هذه. وهذا الإجراء مهم حتى إذا كان جهاز المستخدم لا يتيح عرض صورة "دقة HDR فائقة" بأقصى كثافة. ففي نهاية المطاف، قد يشارك المستخدم صورته مع شخص يستخدم جهازًا متوافقًا مع تقنية "دقة HDR فائقة"، أو قد يحفظ هذه الصورة ويطّلع عليها مجددًا على جهاز جديد بعد مرور سنوات.

الخبر السار هو أنّ معظم طرق تعديل الصور النقطية في Android تتوافق مع تنسيق الصورة الفائقة HDR. إذا كنت تجري تعديلات أساسية على صورة، مثل اقتصاصها أو تدويرها، فإن طرق Android القياسية تؤدي هذه المهمة، وستحصل في نهاية المطاف على صورة ذات نطاق HDR فائقة بالأبعاد أو الاتجاه الجديدين.

تكون المهمة أصعب إذا كنت تعدّل محتويات الصورة. وفي هذه الحالات، تحافظ طرق التعديل العادية على معلومات لمعان الصورة القديمة، والتي قد لا تكون كما تريد. في تلك الحالات، قد تحتاج إلى تعديل أو إزالة خريطة الكسب (التي تشفّر معلومات سطوع الصورة) للحصول على النتيجة الصحيحة.

نظرة عامة على تنسيق "دقة HDR فائقة"

يمكنك الاطّلاع على معلومات مفصّلة حول تنسيق الصورة "دقة HDR فائقة" في مواصفات "صورة النطاق العالي الديناميكية الفائقة" (Ultra HDR). من المهم أن تعرف أنّ الصورة الفائقة النطاق العالي الديناميكية تحتوي على كل من صورة أساسية وخريطة اكتساب.

  • تحتوي الصورة الأساسية على معلومات اللون لكل بكسل من الصورة.
  • خريطة الاستحواذ هي صورة عادية بتنسيق JPEG لها النسب نفسها مثل الصورة الأساسية، وليس بالضرورة بأبعاد البكسل نفسها. يحدد كل بكسل من خريطة الكسب سطوع الجزء المقابل من الصورة الأساسية.

يمكن أن تظهر خريطة الكسب إما بتدرج رمادي أو ألوان. إذا كانت خريطة الكسب ملوَّنة، تحدّد كل قناة لون على خريطة التحصيل سطوع قناة الألوان هذه على الجزء المقابل من الصورة الأساسية. إذا تم استخدام تدرّج الرمادي لخريطة الكسب، تحدد كل بكسل من خريطة الكسب سطوع جميع قنوات الألوان الثلاث في هذا الجزء من الصورة الأساسية.

يجب أن تكون لخريطة الكسب نفس النسب مثل الصورة الأساسية، لكن ليس من الضروري أن تكون لها نفس أبعاد البكسل. في الواقع، عندما ينشئ نظام Android الأساسي صورًا بدقة HDR فائقة، يتم إنشاء خريطة مكسب بعرض وارتفاع أصغر من الصورة الأساسية. يجعل ذلك حجم الملف أصغر بكثير، ولكن مع استمرار ترميز معلومات كافية للحصول على نتيجة جيدة. هذا يعني أن كل بكسل في خريطة الكسب قد يخزن معلومات الإضاءة لعدة وحدات بكسل في الصورة الأساسية.

التعديلات الأساسية الخاصة بتقنية "دقة HDR فائقة"

إذا كنت تستخدم واجهات برمجة تطبيقات Android Bitmap لإجراء عمليات تحويل أساسية إلى صورة بدقة HDR فائقة، تُجري الطرق التغييرات المناسبة على خريطة الاكتساب. تتوفّر عمليات Bitmap التالية:

  • التدوير: في حال تدوير صورة بدقة HDR فائقة، سيتم تدوير خريطة الالتقاط أيضًا.
  • الاقتصاص: عند اقتصاص صورة بدقة HDR فائقة، تعمل الطريقة على اقتصاص خريطة الالتقاط بشكل مناسب.
  • الضبط:في حال تغيير حجم صورة بدقة HDR فائقة، ستعمل هذه الطريقة على تغيير حجم خريطة الالتقاط إلى أن يكون لها نصف عرض ونصف ارتفاع الصورة الأساسية التي تم تغيير حجمها.

وفي كل حالة، يتم الاحتفاظ بمعلومات السطوع.

تعديلات متقدّمة الخاصة بنطاق HDR

إذا أجريت تعديلات أكثر تفصيلاً على صورة بدقة HDR فائقة، يتم الاحتفاظ بخريطة الالتقاط بدون تغيير، ما قد لا يقدّم لك النتائج التي تريدها.

تشمل التعديلات الشائعة التي قد تؤدي إلى هذه الحالة ما يلي:

  • إضافة ملصقات أو رموز تعبيرية: يجب أن يكون للملصق المضاف قيم السطوع وحيوية اللون نفسها المتوفرة في المنطقة التي تم لصقه عليها.
  • تركيب صورة ثانية: تستخدم الصورة الجديدة معلومات السطوع وحيوية اللون للمحتوى المتراكب عليها.
  • إضافة فلاتر: قد لا تكون معلومات خريطة الكسب القديمة مناسبة للصورة الأساسية التي تم تعديلها.

وفي كل حالة، يتم الاحتفاظ بالمعلومات القديمة حول السطوع وحيوية الألوان، ولكنها قد لا تكون مناسبة للصورة المعدّلة.

إذا كانت خريطة الكسب الأصلية مناسبة للصورة التي تم تعديلها، فلن تحتاج إلى فعل أي شيء. إذا كنت تريد تعديل خريطة الاكتساب، سيكون سير العمل المعتاد هو:

  1. اجلب الخريطة الحالية للاستحواذ على الصورة من خلال طلب الرمز Bitmap.getGainmap() وتخزينها مؤقتًا.
  2. عدِّل الصورة الأساسية على النحو المطلوب.
  3. إجراء التعديلات المقابلة على خريطة تحقيق الربح المخزَّنة مؤقتًا على سبيل المثال، إذا لصقت رمزًا تعبيريًا في الصورة الأساسية، يمكنك ضبط الجزء المقابل من خريطة الكسب على قيمة محايدة، مثل Color.GRAY.

  4. يمكنك تطبيق خريطة الاكتساب المعدَّلة على الصورة من خلال طلب الرمز Bitmap.setGainmap().

مراجع إضافية

لمزيد من المعلومات حول الصور بدقة HDR، يمكنك الاطّلاع على المراجع الإضافية التالية: