Как создать альфа-маску из изображения?

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

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

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

Это пример изображения:

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

Как видно, есть части чисто красного цвета, есть части, смешанные с белым, и полностью белые части. Мне нужно иметь «альфа-изображение png», где белый цвет представляет собой прозрачный. Это означает, что полный красный цвет будет иметь альфа-канал 1,0, полностью белый — альфа-канал 0,0, а все, что находится между значениями альфа-канала 0,0-1,0.

В OpenGL у меня есть доступ к каналам r,g,b,a текстуры. Так что, если у кого-то есть другое решение, которое не использует альфу, это тоже поможет.

Спасибо

Ответы (1)

Я думаю, вам нужно что-то вроде этого:

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

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

Где самый глубокий красный — это 100% черный. Это не тяжело сделать. Вы можете еще немного поэкспериментировать с ним:

  1. Обесцветьте изображение до оттенков серого

  2. Откройте уровни и настройте их так, как вам нужно.

Я также сделал это в формате PNG с прозрачностью https://dl.dropboxusercontent.com/u/1007168/Untitled-1.png Пожалуйста, проверьте, нужно ли вам это.

Чтобы сделать это как PNG с прозрачностью и готовым к перекраске:

  1. Выберите свой слой с изображением и скопируйте в буфер обмена. Затем создайте новую маску:введите описание изображения здесь

  2. Вставьте изображение из буфера обмена в маску:введите описание изображения здесь

  3. Отключите маску и вернитесь к обычным каналам RGB:введите описание изображения здесь

  4. Удерживая нажатой клавишу Ctrl (Cmd), щелкните по мизинцу маски в палитре каналов:введите описание изображения здесь

  5. Теперь вы можете удалить белый. Нажмите ДЕЛ:введите описание изображения здесь

Чтобы проверить, как это работает, вы можете попробовать перекрасить его самостоятельно:

  1. Включите «Удерживать прозрачный пиксель»:введите описание изображения здесь

  2. Залейте его любым цветом:введите описание изображения здесь

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

Здравствуйте, спасибо за ответ. Да, это именно то, что я ищу. Я сделал то, что вы сказали мне там, и преобразовал в оттенки серого, а затем переместил уровни. Но я не уверен, что делать дальше... Дело в том, что мне нужно сделать это примерно для 16 различных паттернов (которые будут использоваться в текстурной карте), поэтому мне нужно выяснить процедуру.
@Chiquis, вам нужны ваши маски в формате PNG с прозрачностью (вместо белого)?
Да, что мне нужно, так это иметь возможность создать тот образ, который ты создал. Это именно то, что мне нужно. Я настроил «уровни», чтобы сделать его немного темнее, но я не знаю, как перейти от этого шага к png с прозрачностью.
Хорошо, добавляю информацию, чтобы ответить, как сделать PNG с прозрачностью (готов к перекраске) ​​дальше
Жаль, что в Photoshop отсутствует команда Gimp «Цвет в альфа-канал».