>我正在尝试从数据库获取图像并在客户端接收图像之前调整其大小。这工作正常,但自然图像是完全大小的:
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
}
所以我试过这个:
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/jpeg');
$percent = 0.5;
$width = imagesx($im);
$height = imagesy($im);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$img = imagecreatetruecolor($new_w,$new_h);
imagecopyresized($img,$im,0,0,0,0,$new_w,$new_h,$width,$height);
imagejpeg($im);
imagedestroy($im);
}
但是浏览器返回一个错误,指出"由于包含错误,无法显示图像"。
对不起我的英语。
代码中存在一些错误:1(你应该$img返回,而不是$im...
imagejpeg($im);
imagedestroy($im);
2( 您定义了 $newwidth 和 $newheight,但在以下代码中您使用了 $new_w、$new_h。
正确的代码:
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/jpeg');
$percent = 0.5;
$width = imagesx($im);
$height = imagesy($im);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$img = imagecreatetruecolor($newwidth,$newheight);
imagecopyresized($img,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
imagejpeg($img);
imagedestroy($img);
}
尝试更改以下内容:
$img = imagecreatetruecolor($new_w,$new_h);
imagecopyresized($img,$im,0,0,0,0,$new_w,$new_h,$width,$height);
进入这个:
$img = imagecreatetruecolor($newwidth,$newheight);
imagecopyresized($img,$im,0,0,0,0,$newwidth,$newheight,$width,$height);