Преобразовать изображение в маску

У меня есть зеленая фоновая картинка с тенями. Я хотел бы использовать его в качестве маски, чтобы я мог разместить его на фоне любого цвета (например, красного или розового) и получить тот же стиль теней.

Я попытался преобразовать его в оттенки серого и изменить непрозрачность до 20%, но это привело к более темному изображению.

Я использую это на веб-странице, где администратор может установить цвет шаблона. Затем я использую что-то вроде этого в CSS:

background: #557d0d url("img/background.png") center center;

введите описание изображения здесь

Использование Gimp 2.8.6 в Ubuntu.

Предполагая, что фильтр CSS3 hue-rotateдля изменения цвета не вариант? См. stackoverflow.com/questions/17721960/… или stackoverflow.com/questions/12546499/…

Ответы (5)

Вы можете обесцветить изображение с помощью Colors > Desaturate.... Затем используйте Colors > Color to Alpha...для устранения серого цвета, который делает его темнее ( #808080).

Установите непрозрачность на 40%, и это должно сработать.

Я только что провел небольшой тест на созданном мной веб-сайте:введите описание изображения здесь

Вы не можете точно воспроизвести изображение, используя только замаскированный слой оттенков серого на сплошном цветном фоне, поскольку оттенок зеленого цвета также меняется по вертикальному градиенту.

Вы можете приблизиться к этому, просто выбрав один из средних зеленых оттенков в середине изображения с помощью инструмента «Пипетка», увеличив его насыщенность и значение и сделав этот цвет прозрачным с помощью инструмента «Слой» → «Прозрачность» → «Цвет в альфа-канал » . Однако это оставит ваш слой с цветовыми оттенками вверху и внизу, что вам может не понадобиться.

Лучшим решением может быть разложение изображения на оттенок, насыщенность и значение (HSV), отбрасывание канала оттенка и преобразование каналов насыщенности и значения в маску оттенков серого, которую можно наложить поверх любого чистого насыщенного цвета, чтобы воспроизвести насыщенность и яркость. значение исходного изображения с новым оттенком.

Один из способов сделать это:

  1. Используйте инструмент «Цвета» → «Компоненты» → «Разложить...» , чтобы разложить изображение на слои с использованием режима HSV.

  2. Удалите слой оттенка. Мы не будем его использовать.

  3. Выберите слой насыщенности, откройте диалоговое окно Слой → Маска → Добавить маску слоя... , выберите режим «Оттенки серого копия слоя» и установите флажок «Инвертировать маску».

  4. Повторите шаг 3 для слоя значений.

  5. Используя инструмент заливки ведро (в режиме «Заполнить все выделение»), залейте слой значений ( не его маску!) полностью черным цветом, а слой насыщенности — полностью белым.

  6. Переместите слой значений над слоем насыщенности в стеке.

  7. При желании объедините слои вместе с помощью Image → Merge Visible Layers... или Layers → Merge Down .

Полученное полупрозрачное изображение в градациях серого должно выглядеть так:

Полупрозрачное изображение PNG
Нажмите, чтобы скачать/просмотреть в полном размере.

Хитрость в том, что после шагов 3–5:

  • слой «насыщенность» будет чисто белым там, где исходный цвет был насыщенным на 0%, и прозрачным там, где он был насыщенным на 100%, и
  • слой «значение» будет чисто черным там, где исходный цвет имел значение 0%, и прозрачным там, где он имел значение 100%.

Размещение этих двух слоев (или их объединенной комбинации) поверх чистого насыщенного цвета фона затем повторяет процесс преобразования цвета HSV в RGB: вы начинаете с чистого насыщенного цвета правильного оттенка, смешиваете достаточное количество белого, чтобы получить желаемый насыщенность, а затем добавьте достаточное количество черного, чтобы получить желаемое значение.

Вот как выглядит полученное изображение на разных цветных фонах:

Зеленый фон (#83ff00) Синий фон (#00aeff) Оранжевый фон (#ffa200) Красный фон (#ff002a)
Цвета: зеленый ( #83ff00), синий ( #00aeff), оранжевый ( #ffa200), красный ( #ff002a).

В Gimp вы можете сделать то же самое, что и в фотошопе, используя цвет для альфы . Я бы порекомендовал по-прежнему обесцвечивать, а затем устанавливать белый цвет на альфа-канал, если у вас есть более одного цвета. Похоже, есть какая-то сине-желтая вариация. Ключевые шаги:

  1. обесцветить изображение , чтобы у вас было изображение в оттенках серого
  2. установите белый (вы можете ввести #FFFFFF для белого в палитре цветов) на альфа-канал
  3. сохранить как png, чтобы сохранить прозрачность
Обратите внимание, что преобразование в оттенки серого вместо обесцвечивания может привести к тому, что изображение будет без альфа-канала, и вы можете добавить его обратно в диалоговом окне слоев . Вам также может понадобиться сделать это, если исходный файл, который вы открыли, не имеет альфа-канала.
  • Откройте панель каналов.

введите описание изображения здесь

  • Решите, какой канал даст вам необходимую степень контрастности.

Способ 1:

  • Выберите Image > Calculationsи используйте канал, который вы выбрали в качестве источника 1, тот же канал или «Серый» в качестве источника 2 и «Нормальный» в качестве режима наложения. Выберите «Новый документ» в качестве места назначения.

введите описание изображения здесь

  • Измените режим нового документа на RGB или оттенки серого и сохраните как png или jpeg.

Способ 2:

  • Ctl/Cmd-щелкните миниатюру выбранного вами канала.

  • Edit > Copyили Ctl/Cmd-C

  • File > New, принять размеры Edit > Pasteили Ctl/Cmd-V

  • Удалите фоновый слой.

  • Image > Mode > RGB

  • Сохранить как 24-битный png с прозрачностью.

Вы можете использовать любое из полученных изображений в качестве наложения или в качестве альфа-канала, когда это необходимо.

Кажется, это Photoshop, OP попросил решение GIMP.

Дважды щелкните слой, появится окно стиля слоя, слева найдите и выберите «Наложение градиента» и измените цвет градиента в соответствии с вашими потребностями и нажмите «ОК», затем в поле «Наложение градиента» измените стиль на линейный и измените угол и масштаб в соответствии с ваша потребность.

Второй раз, когда вы добавили ссылку на свою компанию. Это спамом не пахнет, это спам!