图像小于 1MB,但大小约为 5500x3600。我正在尝试将图像缩小到小于 500x500 的大小。我的代码很简单。
$image = imagecreatefromjpeg("upload/1.jpg");
$width = imagesx($image);
$height = imagesy($image);
$pWidth = 500;
$pHeight = 334;
$image_p = imagecreatetruecolor($pWidth, $pHeight);
setTransparency($image,$image_p,$ext);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $pWidth, $pHeight, $width, $height);
我发现要处理这个图像,imagecreatefromjpeg 使用 memory_get_usage 使用 100M。
有没有更好的方法来做 imagecreatefromjpeg?是否有使用更少内存的解决方法或不同的功能?
我确实要求我的服务器管理员增加内存,但我怀疑他们会将内存增加到 100M 或更多。我正在考虑限制用户可以上传的图像的尺寸,但在用尽我的所有选项之前不会这样做,因为用户很可能会上传他们拍摄的图像。
顺便说一句,以下是我使用的使用 100M 内存的图像