2012-05-10 39 views
0

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

<?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'>"; 
?> 

,如果我“为”它的工作原理之前移动“imagecolorallocatealpha” ......但在未来,我需要有各自不同的颜色像素

+0

我怀疑你只能分配数量有限的颜色。即使它们完全相同。但我不确定这一点。 – TaZ

+1

尝试在for循环之前回显$ w和$ h的值。你看到什么值? –

回答

0

alpha参数(最后一个功能imagecolorallocatealpha)应介于0和127之间。您的值255超出范围。如果你使它适合the specifications,你的代码在我的机器上工作。