1

如果是图像,我正在使用 imagefill() 更改背景颜色。但是在这样做的同时,其他不受影响的区域将其颜色更改为黑色。

$image = imagecreatefrompng("sample.png");
$background = imagecolorallocate($image, 255, 0,0);
imagefill($image, 0,0, $background);
header("content-type: image/png");
imagepng($image,"sample.png");

这是我的代码。谁能告诉我这是怎么回事?

4

2 回答 2

1

尝试设置混合模式并保存 alpha

imagealphablending($image, false);
imagesavealpha($image, true);

http://www.php.net/manual/en/function.imagealphablending.php
http://www.php.net/manual/en/function.imagesavealpha.php

于 2012-11-19T17:06:43.227 回答
0

试试这个代码参考

$color = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $color );
于 2017-08-10T07:22:10.567 回答