У мене виникають проблеми з тим, як Photoshop обробляє повністю прозорі пікселі при експорті як PNG, тобто канали червоного, зеленого та синього кольорів будь-яких повністю прозорих пікселів зберігаються як 0 замість кольору, який я визначаю в Photoshop .
Наприклад: у мене є файл PSD з маскою шару. Деякі кольорові частини зображення зроблені повністю прозорими за допомогою шарової маски, але я все ще хочу, щоб оригінальні канали кольорів були записані у файл PNG замість просто 0.
(Так, сам формат PNG робить містити дані RGB , навіть для повністю прозорих пікселів. Це проблема з Photoshop, а НЕ PNG) .
Якщо вам цікаво, чому дані про кольори мають значення, коли піксель повністю прозорий, то ось кілька випадків використання:
- Зразок PNG відбирається з більшою роздільною здатністю, ніж він зберігається, а вибіркові значення інтерполюються між сусідніми пікселями. Це може призвести до слабкого чорного "ореолу" навколо зображення, якщо інтерполяція не буде зважена прозорістю. (У моєму випадку цей підбір вибірки робиться на GPU, який з міркувань продуктивності не важить прозорістю.)
- Червоний, зелений, синій та альфа-канали у файлі PNG використовуються для інших цілей, ніж для зберігання кольорової інформації. (У моєму випадку я використовую всі чотири канали для зберігання даних, необхідних для обчислень у режимі реального часу.)
Спасибі за вашу допомогу!
EDIT
Я спробую пояснити проблему, яку я маю з використанням деяких наочних посібників. Показати прозорі речі важко, але, сподіваюся, це робить мою проблему яснішою:
У мене є файл PSD з одним шаром і маскою шару. Кольоровий шар виглядає приблизно так:
Його шарова маска виглядає приблизно так:
Якщо я експортую цей файл PSD як PNG, я отримую таке:
(Білі регіони дійсно прозорі; вони просто виглядають білими на білому тлі.)
Вам може бути цікаво: в чому проблема? Це виглядає правильно! Ну, проблема полягає в інформації про кольори, що зберігаються в цих прозорих пікселях. Використовуючи інструмент для вилучення даних непрозорості з PNG, залишаючи RGB недоторканим, ми можемо побачити інформацію про кольори, яку Photoshop зберігає у прозорі пікселі:
Як бачите, Photoshop замінив інформацію про колір у прозорих пікселях на чорну. Враховуючи, що з даними непрозорості, видаленими з PNG, я хочу, щоб він виглядав так само, як оригінальний кольоровий шар: