今天想在yii的一个action里做生成图片功能,出现了莫名其妙的问题,明明想生成一个纯色的背景,图片的底部总有一块白色。
代码如下:
public function actionImage(){
header("content-type:image/jpeg");
$path = \Yii::$app->basePath . '/web/';
$im = imagecreatetruecolor(540, 580); // 设置画布大小
$red = imagecolorallocate($im, 255, 0, 0);//图片的rgb
imagefill($im, 100, 100, $red);
imagejpeg($im); // 生成jpeg格式图片
imagedestroy($im); // 销毁图片
}
一直怀疑是GD库有问题。
后来发现在一个单独的php文件里(不在yii的action里),执行就没问题。
原来yii的action在输出的时候又增加了内容。
所以在action的最后需要加上exit。
代码如下:
public function actionImage(){
header("content-type:image/jpeg");
$path = \Yii::$app->basePath . '/web/';
$im = imagecreatetruecolor(540, 580); // 设置画布大小
$red = imagecolorallocate($im, 255, 0, 0);//图片的rgb
imagefill($im, 100, 100, $red);
imagejpeg($im); // 生成jpeg格式图片
imagedestroy($im); // 销毁图片
exit;
}