Так, це можливо. Дозвольте мені окреслити, як це робиться, використовуючи це зображення із Wikimedia Commons (автор ed_g2s , ліцензований як CC-By-SA 3.0 ) як приклад:
Відкрийте чорно-білу фонову версію у вигляді шарів одного зображення (використовуючи Відкрити як шари ... або просто відкрийте і скопіюйте, і вставте одну в іншу). Перемістіть білий шар над чорним шаром, якщо це вже не так. Два шари повинні виглядати приблизно так:
Візьміть різницю шарів: клонуйте чорний шар (вам знадобиться пізніше), змініть режим шару білого шару на «різницю» і злийте його. Інвертувати результат. Це дає альфа-канал вихідного зображення.
Редагувати: Якщо фони не чорно-білі, перевернутий шар різниці не матиме чорного фону. Щоб виправити це, спочатку знежирюйте шар (використовуючи той режим, який забезпечує найкращий контраст), а потім використовуйте Кольори → Авто → Нормалізувати, щоб фон став чорним. Ви також можете використати мікшер каналів , але це трохи складніше.
( Нормалізація вище працює, якщо альфа-канал, який ви відтворюєте, має принаймні деякі частини зі 100% непрозорістю; якщо зображення, яке ви відтворюєте, скрізь напівпрозоре, ви можете використовувати Colors → Levels ... для встановлення лише чорної точки. )
Якщо у вас його ще немає, вам також потрібно створити версію свого зображення з чорним фоном для наступного кроку. Для цього скористайтеся наступними додатковими кроками:
- Виберіть ту, в якій оригінальній версії є темніше тло. Створіть поверх нього новий шар, наповнений кольором тла.
- Клоніруйте різницький шар і поверніть його знову, щоб він мав біле тло. Розмістіть цей шар поверх новоствореного вами нового твердого кольору, встановіть режим його шару на «множення» та злиття.
- Нарешті, змініть режим отриманого шару на "віднімання" і об'єднайте його на шар з початковим зображенням. Це повинно відняти вихідний фон, залишивши вас із зображенням на чорному тлі.
Якби ми використовували формат зображення з попередньо розмноженою альфа-то, ми б зараз зробили більш-менш. Але оскільки ми цього не робимо, нам ще потрібно депримножувати канали RGB. Для цього клонуйте альфа-шар, який ми створили на попередньому кроці (або просто скопіюйте його в буфер обміну), встановіть режим його шару на "розділення" та об'єднайте його з шаром чорного фону, який ви клонували перед кроком 2. Результат має виглядати так (порівняйте з оригінальною версією чорного тла, щоб побачити різницю):
Тепер додайте до отриманого шару маску шару, виберіть маску та вставте в неї альфа-шар. Тепер результат повинен виглядати більш-менш схожим на оригінальне прозоре зображення. Нарешті, щоб перетворити маску у належний альфа-канал, ви можете застосувати її (але експорт PNG GIMP зробить це для вас, навіть якщо ви цього не зробите). І ось ви їдете - один реконструйований прозорий PNG готовий до роботи:
Звичайно, ця техніка дійсно вимагає, щоб у вас були версії зображення на чисто чорному та чисто білому тлі. Якщо фони трохи відмовилися, подібні методи все ще можуть бути корисними, але вам може знадобитися зробити додаткові корективи кольору, і результати можуть бути не такими ідеальними. ( Редагувати: Див. Доповнення до кроку 2 вище. Змінені інструкції повинні працювати з фонами будь-якого кольору, якщо вони суцільних кольорів.)
Пс. У GIMP також є функція "Колір стирання" (як режим змішування інструменту Buill Fill, або як Color to Alpha ... для всього зображення), що корисно для відновлення прозорості, якщо у вас є лише одна версія зображення на суцільному кольоровому фоні. Однак, якщо його не використовувати обережно, він має тенденцію до отримання випуску, який є більш прозорим, ніж ви, мабуть, хотіли б .
Pps. Якщо ви дуже обережно порівнюєте оригінальні та реконструйовані зображення, ви побачите, що вони не зовсім однакові - деякі значення кольору вимкнено на 1/256 або близько того. Це тому, як працює режим розділення шару GIMP : замість обчислення справжнього зворотного множення альфа, яке було б виведенням = (255 × вхід ) / шар , він фактично обчислює вихід = ( вхід 256 × ) / ( шар+ 1). Ця невідповідність, яка нібито робиться, щоб уникнути ділення на нуль, означає, що деякі кольори можуть закруглюватись до дещо іншого значення, ніж слід. На жаль, я не знаю про це, крім патчу GIMP, написання плагіна, щоб зробити поділ так, як ми цього хочемо, або використовуючи якусь іншу програму. На щастя, однак різниця в кольорі рідко, якщо взагалі відчувається людським оком.