使用imagecolorallocate(PHP)重新制作图像,但获得不同的颜色

时间:2015-04-26 14:29:43

标签: php php-gd

public function createNewImage222($image){
$image = imagecreatefromjpeg($image);
$width = imagesx($image);
$height = imagesy($image);
$img = imagecreatetruecolor($width,$height);
for ($x = 0; $x <$width; $x++)
{
    for ($y = 0; $y <$height ; $y++){
        $rgb = imagecolorat($image, $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;
        $color =  imagecolorallocate($img,$r,$g,$b);
        imagesetpixel($img,$x,$y,$color);
    }
}

$new_img = imagecreate($width,$height);
imagecopyresized($new_img,$img,0,0,0,0,$width,$height,$width,$height);
return $new_img;}

这是我的代码并显示结果使用:

header('Content-Type: image/jpeg');
imagejpeg($result,null,100)
imagedestroy($result);

但获得不同的颜色和大小。原始图像13KB,结果40KB。对不起,我无法发布图片。

1 个答案:

答案 0 :(得分:1)

$new_img =  imagecreatetruecolor($width,$height);

http://php.net/manual/en/function.imagecreate.php

  

建议使用imagecreatetruecolor()代替imagecreate()