imagefill()将该区域的其余部分变为黑色

时间:2012-11-19 16:48:59

标签: php image

我使用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");

这是我的代码。任何人都可以告诉我这是怎么回事?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

试试此代码ref

$color = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $color );