ویرایش تصاویر Ultra HDR

فرمت تصویر Ultra HDR اطلاعات درخشندگی را رمزگذاری می‌کند که به دستگاه‌ها اجازه می‌دهد تصاویر روشن‌تر با رنگ‌های شدیدتر را نمایش دهند. وقتی برنامه شما یک تصویر Ultra HDR را ویرایش می‌کند، می‌خواهید مطمئن شوید که آن اطلاعات درخشندگی حفظ می‌شود. این مهم است حتی اگر دستگاه کاربر از نمایش تصویر Ultra HDR با حداکثر شدت پشتیبانی نکند. به هر حال، کاربر ممکن است تصویر خود را با کسی که دستگاهی با پشتیبانی از Ultra HDR دارد به اشتراک بگذارد، یا ممکن است آن تصویر را ذخیره کند و سال‌ها بعد دوباره در یک دستگاه جدید به آن نگاه کند.

خبر خوب این است که اکثر روش‌های اندروید برای ویرایش بیت‌مپ‌ها از فرمت تصویر Ultra HDR پشتیبانی می‌کنند. اگر در حال انجام ویرایش‌های اولیه روی یک تصویر هستید، مانند برش یا چرخش آن، روش‌های استاندارد اندروید این کار را انجام می‌دهند - در نهایت یک تصویر ultra HDR با ابعاد یا جهت‌گیری جدید خواهید داشت.

اگر در حال تغییر محتوای تصویر هستید، کار پیچیده‌تر می‌شود. در این موارد، روش‌های ویرایش استاندارد، اطلاعات درخشندگی تصویر قدیمی را حفظ می‌کنند که ممکن است آن چیزی نباشد که شما می‌خواهید. در این موارد، ممکن است لازم باشد نقشه بهره (که اطلاعات درخشندگی تصویر را کدگذاری می‌کند) را ویرایش یا حذف کنید تا به نتیجه درست برسید.

مرور کلی فرمت Ultra HDR

فرمت تصویر Ultra HDR به طور مفصل در مشخصات تصویر Ultra HDR شرح داده شده است. مهمترین نکته برای درک این است که یک تصویر Ultra HDR شامل یک تصویر اولیه و یک نقشه بهره است.

  • تصویر اصلی اطلاعات رنگی هر پیکسل از تصویر را دارد.
  • نقشه بهره یک تصویر JPEG استاندارد با همان نسبت‌های تصویر اصلی است، هرچند لزوماً ابعاد پیکسلی یکسانی ندارد. هر پیکسل از نقشه بهره، روشنایی قسمت مربوطه از تصویر اصلی را مشخص می‌کند.

نقشه بهره می‌تواند خاکستری یا رنگی باشد. اگر نقشه بهره رنگی باشد، هر کانال رنگی روی نقشه بهره، روشنایی آن کانال رنگی را در قسمت مربوطه از تصویر اصلی مشخص می‌کند. اگر نقشه بهره خاکستری باشد، هر پیکسل از نقشه بهره، روشنایی هر سه کانال رنگی را در آن قسمت از تصویر اصلی مشخص می‌کند.

نقشه بهره باید نسبت‌های یکسانی با تصویر اصلی داشته باشد، اما لازم نیست ابعاد پیکسلی یکسانی داشته باشد. در واقع، وقتی پلتفرم اندروید تصاویر Ultra HDR ایجاد می‌کند، یک نقشه بهره با عرض و ارتفاع کوچکتر از تصویر اصلی ایجاد می‌کند. انجام این کار باعث می‌شود اندازه فایل به طور قابل توجهی کوچکتر شود، اما همچنان اطلاعات کافی را برای یک نتیجه خوب رمزگذاری می‌کند. این بدان معناست که هر پیکسل در نقشه بهره ممکن است اطلاعات روشنایی چندین پیکسل در تصویر اصلی را ذخیره کند.

ویرایش‌های پایه Ultra HDR

اگر از APIهای Bitmap اندروید برای ایجاد تبدیل‌های اولیه به یک تصویر Ultra HDR استفاده می‌کنید، متدها تغییرات مناسب را در نقشه بهره ایجاد می‌کنند. عملیات Bitmap زیر پشتیبانی می‌شوند:

  • چرخش: اگر یک تصویر Ultra HDR را بچرخانید، این روش نقشه بهره (gain map) را نیز می‌چرخاند.
  • برش: اگر یک تصویر Ultra HDR را برش دهید، این روش نقشه بهره را به طور مناسب برش می‌دهد.
  • مقیاس: اگر یک تصویر Ultra HDR را مقیاس‌بندی کنید، این روش نقشه بهره را مقیاس‌بندی می‌کند، بنابراین نصف عرض و نصف ارتفاع تصویر اصلی تغییر اندازه داده شده را خواهد داشت.

در هر مورد، اطلاعات درخشندگی حفظ می‌شود.

ویرایش‌های پیشرفته‌ی Ultra HDR

اگر ویرایش‌های پیچیده‌تری روی یک تصویر Ultra HDR انجام دهید، نقشه‌ی بهره بدون تغییر باقی می‌ماند، که ممکن است نتایج دلخواه شما را به همراه نداشته باشد.

ویرایش‌های رایجی که ممکن است منجر به این وضعیت شوند عبارتند از:

  • افزودن استیکر یا ایموجی: استیکر اضافه شده همان میزان درخشندگی و وضوح رنگ ناحیه‌ای که روی آن چسبانده شده را خواهد داشت.
  • روی هم قرار دادن تصویر دوم: تصویر جدید از اطلاعات درخشندگی و وضوح رنگ محتوایی که روی آن قرار می‌گیرد استفاده می‌کند.
  • افزودن فیلترها: اطلاعات نقشه بهره قدیمی ممکن است برای تصویر اولیه اصلاح‌شده مناسب نباشد.

در هر مورد، اطلاعات درخشندگی و وضوح رنگ قدیمی حفظ می‌شود، اما ممکن است برای تصویر اصلاح‌شده مناسب نباشد.

اگر نقشه بهره اصلی برای تصویر ویرایش شده مناسب باشد، لازم نیست کاری انجام دهید. اگر می‌خواهید نقشه بهره را تغییر دهید، روند کار معمول به شرح زیر است:

  1. با فراخوانی Bitmap.getGainmap() نقشه بهره فعلی تصویر را دریافت کرده و آن را ذخیره کنید.
  2. تصویر اصلی را به دلخواه تغییر دهید.
  3. ویرایش‌های مربوطه را در نقشه بهره ذخیره‌شده انجام دهید. برای مثال، اگر یک ایموجی را روی تصویر اصلی قرار داده‌اید، می‌توانید بخش مربوطه از نقشه بهره را روی یک مقدار خنثی مانند Color.GRAY تنظیم کنید.

  4. با فراخوانی تابع Bitmap.setGainmap() نگاشت بهره اصلاح‌شده را دوباره روی تصویر اعمال کنید .

منابع اضافی

برای کسب اطلاعات بیشتر در مورد تصاویر Ultra HDR، به منابع اضافی زیر مراجعه کنید: