Возможно ли, чтобы изображение было дополнительным цветом его фона?

433
anonymous

Если у меня будет прозрачное изображение, оно получит цвет фона. Иногда, однако, на переднем плане моего изображения тот же цвет фона. И иногда я думаю, что было бы здорово выглядеть противоположным (дополнительным) цветом своего фона. Например, черный на белый, красный на зеленый, синий на оранжевый и т. Д. Возможно ли это и как мне это сделать?

0
Прозрачные изображения не имеют фона, поэтому то, что вы хотите сделать, невозможно. DavidPostill 7 лет назад 1
Общая концепция наличия фона и изображения - _layering_, и хотя правда, что прозрачность сама по себе не поможет, профессиональное программное обеспечение для рисования (включая [GIMP] (https://docs.gimp.org/2.8/en). /gimp-concepts-layer-modes.html)) поддерживает слои, которые выполняют операции, отличные от обычной прозрачности, такие как добавление яркости, изменение цветов и т. д. Они также могут сочетаться с различными степенями прозрачности. Поскольку вы выбрали тег обработки изображений, я считаю, что именно эту информацию вы ищете. Run CMD 7 лет назад 0

2 ответа на вопрос

2
grawity

Я собираюсь догадаться, что это касается дизайна веб-сайта в частности.

Хотя это невозможно сделать с одним изображением (в котором есть только альфа-канал, и не более того), современные браузеры имеют такие функции CSS, как background-blend-mode и mix-blend-mode . Я думаю, что установка mix-blend-mode exclusionдаст вам желаемый результат ...

(Конечно, это зависит от браузера, хотя в настоящее время широко поддерживается. Для IE вы можете найти что-то похожее в фильтрах ...)

Можно ли просто использовать изображение, чтобы изображение профиля в Gmail или на каком-либо подобном сайте работало так? anonymous 7 лет назад 0
1
slhck

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

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

(Конечно, существуют более сложные форматы изображений, такие как многослойный TIFF или даже файл Photoshop, в котором может быть несколько слоев с различными эффектами наложения, но я понимаю, что это не контекст этого вопроса.)

Похожие вопросы