Використовуючи GIMP, чи можете ви “стерти” колір?


9

Зараз я працюю над додатком iOS, і я намагаюся змінити інженерне стандартне діалогове вікно попередження. Мені вдалося розібратися, яке значення альфа на тлі, яке воно використовує, відбувається через деяку вибірку кольорів на суцільному чорному погляді та на суцільному білому зображенні.

Враховуючи цю інформацію, чи можна за допомогою GIMP просто "стерти" колір тла, так що мені лишається лише оригінальний, необмежений фон попередження?

У мене є лише зображення попередження у формі зображення як скріншот із запущеного додатка.

Відповіді:


8

Так, це можливо. Дозвольте мені окреслити, як це робиться, використовуючи це зображення із Wikimedia Commons (автор ed_g2s , ліцензований як CC-By-SA 3.0 ) як приклад:

Демонстраційне зображення прозорості PNG від ed_g2s, ліцензоване як CC-By-SA 3.0

  1. Відкрийте чорно-білу фонову версію у вигляді шарів одного зображення (використовуючи Відкрити як шари ... або просто відкрийте і скопіюйте, і вставте одну в іншу). Перемістіть білий шар над чорним шаром, якщо це вже не так. Два шари повинні виглядати приблизно так:

    Демонстраційне зображення з чорним фоном Демонстраційне зображення з білим тлом

  2. Візьміть різницю шарів: клонуйте чорний шар (вам знадобиться пізніше), змініть режим шару білого шару на «різницю» і злийте його. Інвертувати результат. Це дає альфа-канал вихідного зображення.

    Реконструйований альфа-канал

    Редагувати: Якщо фони не чорно-білі, перевернутий шар різниці не матиме чорного фону. Щоб виправити це, спочатку знежирюйте шар (використовуючи той режим, який забезпечує найкращий контраст), а потім використовуйте Кольори → Авто → Нормалізувати, щоб фон став чорним. Ви також можете використати мікшер каналів , але це трохи складніше.

    ( Нормалізація вище працює, якщо альфа-канал, який ви відтворюєте, має принаймні деякі частини зі 100% непрозорістю; якщо зображення, яке ви відтворюєте, скрізь напівпрозоре, ви можете використовувати Colors → Levels ... для встановлення лише чорної точки. )

    Якщо у вас його ще немає, вам також потрібно створити версію свого зображення з чорним фоном для наступного кроку. Для цього скористайтеся наступними додатковими кроками:

    • Виберіть ту, в якій оригінальній версії є темніше тло. Створіть поверх нього новий шар, наповнений кольором тла.
    • Клоніруйте різницький шар і поверніть його знову, щоб він мав біле тло. Розмістіть цей шар поверх новоствореного вами нового твердого кольору, встановіть режим його шару на «множення» та злиття.
    • Нарешті, змініть режим отриманого шару на "віднімання" і об'єднайте його на шар з початковим зображенням. Це повинно відняти вихідний фон, залишивши вас із зображенням на чорному тлі.
  3. Якби ми використовували формат зображення з попередньо розмноженою альфа-то, ми б зараз зробили більш-менш. Але оскільки ми цього не робимо, нам ще потрібно депримножувати канали RGB. Для цього клонуйте альфа-шар, який ми створили на попередньому кроці (або просто скопіюйте його в буфер обміну), встановіть режим його шару на "розділення" та об'єднайте його з шаром чорного фону, який ви клонували перед кроком 2. Результат має виглядати так (порівняйте з оригінальною версією чорного тла, щоб побачити різницю):

    Розмноження каналів RGB

  4. Тепер додайте до отриманого шару маску шару, виберіть маску та вставте в неї альфа-шар. Тепер результат повинен виглядати більш-менш схожим на оригінальне прозоре зображення. Нарешті, щоб перетворити маску у належний альфа-канал, ви можете застосувати її (але експорт PNG GIMP зробить це для вас, навіть якщо ви цього не зробите). І ось ви їдете - один реконструйований прозорий PNG готовий до роботи:

    Реконструйоване зображення з прозорістю

Звичайно, ця техніка дійсно вимагає, щоб у вас були версії зображення на чисто чорному та чисто білому тлі. Якщо фони трохи відмовилися, подібні методи все ще можуть бути корисними, але вам може знадобитися зробити додаткові корективи кольору, і результати можуть бути не такими ідеальними. ( Редагувати: Див. Доповнення до кроку 2 вище. Змінені інструкції повинні працювати з фонами будь-якого кольору, якщо вони суцільних кольорів.)


Пс. У GIMP також є функція "Колір стирання" (як режим змішування інструменту Buill Fill, або як Color to Alpha ... для всього зображення), що корисно для відновлення прозорості, якщо у вас є лише одна версія зображення на суцільному кольоровому фоні. Однак, якщо його не використовувати обережно, він має тенденцію до отримання випуску, який є більш прозорим, ніж ви, мабуть, хотіли б .

Pps. Якщо ви дуже обережно порівнюєте оригінальні та реконструйовані зображення, ви побачите, що вони не зовсім однакові - деякі значення кольору вимкнено на 1/256 або близько того. Це тому, як працює режим розділення шару GIMP : замість обчислення справжнього зворотного множення альфа, яке було б виведенням = (255 × вхід ) / шар , він фактично обчислює вихід = ( вхід 256 × ) / ( шар+ 1). Ця невідповідність, яка нібито робиться, щоб уникнути ділення на нуль, означає, що деякі кольори можуть закруглюватись до дещо іншого значення, ніж слід. На жаль, я не знаю про це, крім патчу GIMP, написання плагіна, щоб зробити поділ так, як ми цього хочемо, або використовуючи якусь іншу програму. На щастя, однак різниця в кольорі рідко, якщо взагалі відчувається людським оком.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.