GIMP - Использование изображения в качестве слоя прозрачности другого изображения

34

У меня есть два изображения (для простоты, Image1 и Image2). Я хочу использовать Image2 в качестве прозрачности для Image1.

Как я могу это сделать? Предположим, я сделал немного больше с Gimp, чем играл с некоторыми фильтрами.

Спасибо.

Нарф Мышь
источник
2
Является ли Image2 изображением в градациях серого? Поскольку для прозрачности используется значение 0..255 для каждого пикселя, в этом отношении оно похоже на изображение в градациях серого.
mgkrebbs
Для новичков GIMP, таких как я, следующее обеспечивает необходимую информацию и терминологию, чтобы понять эту тему. Все равно помог мне. Docs.Gimp, Глава 8. Объединение изображений: docs.gimp.org/2.6/en/gimp-image-combining.html
ScottWelker

Ответы:

36

Итак, я предполагаю, что у вас есть два изображения: обычное изображение, к которому вы хотите добавить прозрачность, и изображение в градациях серого, которое вы хотите использовать в качестве своего альфа-канала (прозрачности), что-то вроде этого:

Базовое изображение без прозрачности Альфа-маска для изображения
(Базовое изображение, основанное на этой фотографии Джона Филдинга , используется под лицензией CC-By-SA 2.0 ; альфа-маска, созданная мной с помощью инструмента Sphere Designer в GIMP.)

Есть несколько способов сделать это; позвольте мне описать некоторые из них.

Метод 1: Откройте оба изображения в GIMP. Выберите изображение в градациях серого и скопируйте его в буфер обмена ( Правка → Копировать или Ctrl+ C). На базовом изображении выберите « Слой» → «Маска» → «Добавить маску слоя» (также доступно при щелчке правой кнопкой мыши по слою в диалоговом окне «Слои»). Неважно, что вы выберете в качестве маски, так как мы скоро ее заменим.

Добавленная вами маска слоя должна быть выбрана для редактирования; если нет, выберите его с помощью Layer → Mask → Edit Layer Mask (или просто нажмите на маску в диалоге Layers). Вставьте изображение в градациях серого в ( Правка → Вставить или Ctrl+ V) и закрепите результирующее плавающее выделение в маске ( Слои → Якорный слой или Ctrl+ Hили щелкните значок Якорь в диалоговом окне «Слои»).

При желании можно превратить маску слоя в настоящий альфа-канал, используя « Слой» → «Маска» → «Применить маску слоя» (но простой экспорт изображения в формате PNG сделает это за вас).

Способ 2: Откройте изображения в виде слоев ( Файл → Открыть как слои ... ) или просто вставьте одно как новый слой в другой. С видимым слоем изображения в градациях серого откройте диалоговое окно «Каналы», щелкните правой кнопкой мыши один из каналов «Красный / Зеленый / Синий» (все они должны быть идентичны) и выберите « Канал для выделения » . Инвертируйте выделение с помощью Select → Invert или Ctrl+ I.

Выберите базовый слой изображения в диалоге слоев. Добавьте для него альфа-канал с помощью меню «Слои» → «Прозрачность» → «Добавить альфа-канал», если у него его еще нет, а затем отрежьте выделение от слоя (« Выбрать» → «Вырезать» или « CtrlX).

Метод 3: Как и метод 2, но после Channel to Selection , не инвертируйте выделение, а просто используйте Layer → Mask → Add Layer Mask ... на базовом слое изображения и выберите «Selection» в диалоговом окне. Затем при необходимости примените маску, как в методе 1.


В любом случае, какой бы метод вы ни использовали, результат должен выглядеть следующим образом (фактический прозрачный PNG слева, с клетчатым фоном справа):

Объединение базового изображения и прозрачности, фактическая прозрачность Объединены базовое изображение и прозрачность, клетчатый фон

Илмари Каронен
источник
1
Метод 1: ключевым моментом является закрепление вставленного изображения - если у вас не открыт диалог слоев, не очевидно, что даже если вы вставите изображение, оно не станет маской слоя, пока вы не скажете привязать , Вот что привело меня к поиску и приезду сюда.
Крис Х
6

Для ознакомления с основами "маски слоя" посмотрите этот урок .

Общий алгоритм может быть:

  1. Создайте SomeMaskLayer с прозрачностью.
  2. Щелкните правой кнопкой мыши на SomeMaskLayer и выберите « Alpha To Selection » ( в Dock «Layers» )
  3. Выберите меню -> Сохранить на канал .
  4. Скрыть SomeMaskLayer . ( В доке "Слои" )
  5. Создайте SomeRasterLayer . (Файл -> Открыть как слои или нарисовать)
  6. Щелкните правой кнопкой мыши верхний слой и выберите « Добавить маску слоя ». ( В доке "Слои" )
  7. В диалоговом окне выберите « Канал» и выберите новый канал в комбо. Нажмите Добавить .

Хорошо, теперь у вас есть «живая маска».

  1. Щелкните правой кнопкой мыши -> Применить маску слоя к маске для запекания для пикселей. ( В доке "Слои" )

Наслаждайтесь!

быстрый
источник
Спасибо за учебники. Однако - они предполагают, что фон в графике, а не в программировании. Кроме того, я не получаю боковые панели, которые они показывают, когда я открываю Gimp. В-третьих, я уже попытался открыть Image1 в качестве первого слоя, Image2 в качестве второго слоя, а затем добавить маску белого слоя на втором слое. Это не сработало.
Нарф Мышь
Или, по крайней мере, оказалось, что это не работает. Там нет реального изменения в изображении, инвертирую ли я цвета или нет.
Нарф Мышь
1. о панелях (доки в GIMP): попробуйте использовать однооконный режим: меню Windows / однооконный режим .... 2. вероятно, просто доки скрыты: меню Windows / скрыть доки (или нажмите Tab)
быстро
на новом канале я должен был установить «Заполнить непрозрачность» на 0. Также я не «применил маску слоя», потому что я все еще хочу иметь возможность изменить изображение. Я просто хотел применить прозрачность в определенных регионах на всех слоях. Поэтому я добавил маску с опцией канала к каждому из слоев, и она работала отлично, спасибо!
Водолей Сила
К вашему сведению, обе вышеуказанные ссылки являются спамом.
DrewB