1
$background = imagecreatetruecolor(709,709);

$whiteBackground = imagecolorallocate($background, 255, 255, 255);

imagecopyresampled($whiteBackground, $new_img,(709-$imageWidth)/2,(709-$imageHeight)/2, 0, 0, $imageWidth, $imageHeight, $width, $height);

ImageJpeg ($background,"$path/$newName.$file_ext", 85);

我试图用 GD 创建一个白色背景的图像。但是没有运气,任何想法我做错了什么?我知道如果我取出 whiteBackground 位,法师会抽水,所以创建图像代码没有问题。

谢谢

4

3 回答 3

3

您缺少分配白色的imagefill()方法。$background

并且您不能从 [color] 到 [image] 重新采样,您应该从 [image] 到 [image] 进行重新采样。

$background = imagecreatetruecolor(709,709);
$whiteBackground = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$whiteBackground);
imagecopyresampled($background, $new_img,(709-$imageWidth)/2,(709-$imageHeight)/2, 0, 0, $imageWidth, $imageHeight, $width, $height);
ImageJpeg ($background,"$path/$newName.$file_ext", 85);
于 2012-05-24T11:11:04.623 回答
0

http://php.net/manual/en/function.imagecopyresampled.php声明前两个参数必须是$dst_image$src_image

$new_img在您的代码中不存在,需要使用imagecreatetruecolor();

我相信默认情况下它应该是白色背景,所以你不应该需要imagecolorallocate()

于 2012-05-24T11:04:21.653 回答
0

我希望这有效

$background = imagecreatetruecolor(709,709);
$whiteBackground = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$whiteBackground);
$use_new_img = imagecreatefromjpeg($new_img);
imagecopyresampled($whiteBackground,$use_new_img,(709-$imageWidth)/2,  (709-$imageHeight)/2, 0, 0,$imageWidth,$imageHeight,$width,$height);
ImageJpeg ($background,"$path/$newName.$file_ext", 85);
于 2013-04-24T13:15:23.097 回答