使用PHP将图像中的颜色替换为另一种颜色

Flo*_*ică 7 php gd

有人可以帮我用一个简单的脚本用PHP替换图像中另一种颜色的特定颜色吗?这是一个例子(颜色从绿色变为黄色).

之前 后

Tou*_*uki 21

如果你的意思是在PHP中使用GD库,你应该检查imagefilter()

步骤是:

  • 从.PNG图像开始,使用白色作为内部,使用alpha作为外部.
  • 使用imagefilter($img, IMG_FILTER_COLORIZE, 0, 255, 0))其中0,255,0是您的RGB颜色(本例中为亮绿色)
  • 保存alpha并打印输出结果.

编辑,工作代码和说明.

我的意思是,使用alpha表示黑色线条的OUTER和白色INSIDE.这是示例图像: WhiteInAlphaOut

这是一个用于着色白色部件的工作代码:

header('Content-Type: image/png');

/* RGB of your inside color */
$rgb = array(0,0,255);
/* Your file */
$file="../test.png";

/* Negative values, don't edit */
$rgb = array(255-$rgb[0],255-$rgb[1],255-$rgb[2]);

$im = imagecreatefrompng($file);

imagefilter($im, IMG_FILTER_NEGATE); 
imagefilter($im, IMG_FILTER_COLORIZE, $rgb[0], $rgb[1], $rgb[2]); 
imagefilter($im, IMG_FILTER_NEGATE); 

imagealphablending( $im, false );
imagesavealpha( $im, true );
imagepng($im);
imagedestroy($im);
Run Code Online (Sandbox Code Playgroud)

注意:我们必须否定值,因为着色仅适用于非白色部分.我们可以通过使用带有黑色内部的白边图像来解决这个问题.

注意:此代码仅适用于黑色边框和白色内部图像.