Можно ли смешать изображение в цвет? (Слева, справа, снизу) - PullRequest
1 голос
/ 27 апреля 2010

Можно ли смешать левую, правую и нижнюю стороны изображения в цвет?
Допустим, я хочу, чтобы изображение было смешано с цветом "# F0F0F0".Я хочу, чтобы изображение отображалось как фактическая часть фона, поэтому я подумал, что оно будет выглядеть круто, если его смешать.

Ответы [ 5 ]

2 голосов
/ 27 апреля 2010

Если это только для веб-страницы, это возможно с использованием базового HTML + CSS. Как вы и сказали, вы можете использовать PNG в качестве наложения (с помощью тщательно расположенного <div>) на заднем плане.

В противном случае, загляните в библиотеки ImageMagick для PHP , так как они позволят вам программно создать смешанное изображение, как вы описываете. (Imagick::colorizeImage)

1 голос
/ 27 апреля 2010

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

1 голос
/ 27 апреля 2010

Вы можете сделать это с помощью библиотеки манипулирования изображениями, например ImageMagick или GD . Я нашел эту страницу , где автор использует градиент для смешивания с использованием GD.

Вы также можете попробовать использовать Imagick::colorizeimage

UPDATE

Исходя из вашего скриншота, я не понимаю, почему вы не можете делать то, что хотели, с помощью простого HTML + CSS. Вы можете либо использовать прозрачный PNG , либо вы можете использовать -moz-opacity, opacity или filter:alpha в своем CSS ( Прозрачность между браузерами через CSS ) .

1 голос
/ 27 апреля 2010

Вам нужно будет манипулировать пиксельными данными изображения, чтобы достичь этого, но как только вы это сделаете, это на самом деле не проблема. Возьмите значение цвета пикселя и смешайте его с вашим blendcolor. Есть некоторые довольно стандартные математические выражения, которые могут справиться с этим довольно хорошо, например, этот алгоритм value1 + (value2 - value1) * amount, часто используемый в пиксельных шейдерах при выполнении мультитекстурирования.

Как уже говорили другие библиотеки изображений для php, такие как GD, помогает с обработкой данных изображения, так как вам не придется декодировать и кодировать его самостоятельно

0 голосов
/ 27 апреля 2010

Я предлагаю вам использовать класс загрузки verot php . Он содержит все доступные на данный момент серверные функции манипуляции с изображением (поворот, оттенок, цвет рамки, цвет фона и т. Д.).

См. Этот пример кода:

$foo->image_resize          = true;
$foo->image_ratio_fill      = 'R';
$foo->image_y               = 150;
$foo->image_x               = 100;
$foo->image_background_color = '#FF00FF';
$foo->image_rotate          = '90';
...