0

我想改变图像的颜色(几乎变成红色),但我只创建了一行半。为什么?

<?php    
$imgname = "test/test.png";
$im = imagecreatefrompng($imgname);

$w = imagesx($im); // image width
$h = imagesy($im); // image height

for($i=0;$i<$w;$i++){
    for($j=0;$j<$h;$j++){
        $color=imagecolorallocatealpha ($im, 255, 0, 0,255);
        imagesetpixel ($im, $i, $j, $color);
    }
}

$imgname = "test/result.png";
imagepng($im, $imgname ); // save image as png
imagedestroy($im);

echo "<img src='test/result.png'>";
?>

如果我在“for”之前移动“imagecolorallocatealpha”,它会起作用......但将来我需要让每个像素都有不同的颜色

4

1 回答 1

0

alpha参数(函数中的最后一个imagecolorallocatealpha)应介于 0 和 127 之间。您的值 255 超出范围。如果你让它符合规范,你的代码就可以在我的机器上运行。

于 2012-09-03T12:36:49.693 回答