我知道imagemagick可以通过将图像转换为灰度,然后创建渐变并执行颜色查找表转换来实现“渐变贴图”效果。
我想知道的是php的默认图像函数是否可以获取全彩图像,并将其转换为双色调。
如果允许我指定两种颜色,img_filter_colorize将起作用!
最佳答案
如果你想达到“梯度地图”的效果。程序如下:
把你的图像变成灰度…最简单的方法是使用ATSC开发的用于HDTV的模型(http://en.wikipedia.org/wiki/Grayscale):
Luma=0.2126*R+0.7152*G+0.0722*B
一旦你有你的luma,你必须做一个函数,把luma从0~100%映射到你想要的颜色梯度从0%~100%…换句话说:
Luma=0%-->颜色A
Luma=100%-->颜色B
luma=x%-->a和b之间的插值…插值颜色=x%*b+(100-x)%*a
当然,将这些公式应用于所有通道r、g和b。
一旦可以访问图像的像素,就可以在php中轻松完成这项工作。