ImageCopyResampled可以处理的最大宽度和高度是多少?我的代码适用于宽度和高度较小的图像。对于较大的图像,它将忽略坐标,这意味着裁剪从图像的左上角开始。
有解决方法吗?这是一部分:
$trgt_width = 500;
$trgt_height = 400;
if(copy($src_file, $trgt_file)):
$src_image = imageCreateFromJpeg($src_file);
$trgt_image = imageCreateTrueColor($trgt_width, $trgt_height);
imageCopyResampled($trgt_image, $src_image, 0, 0, $x, $y, $trgt_width, $trgt_height, $width ,$height);
imageJpeg($trgt_image, $thumb_file, 75);
endif;
感谢。
答案 0 :(得分:2)
这取决于脚本可能占用的最大RAM量。这通常由管理员在您的服务器上设置。该设置称为memory_limit
您可以使用phpinfo()
找到它并搜索“memory_limit”。
粗略计算调整图像大小所需的大小:
number of bytes width x number of bytes height x 3
对于真彩色图像的每个通道,3:红色,绿色和蓝色。
因此,1000 x 1000像素的图像将占用至少3 MB的内存。在调整大小过程中可能更多,因为该函数必须同时将大型和大小调整版本保留在内存中。
在你的情况下,我怀疑图像根本没有被裁剪,可能是因为复制操作失败,因为$src_file
根本不存在。