我使用laravel干预来创建带有水印的图像,但我发现laravel干预无法处理超过2mb的图像,这是我的代码:
// open an image file
$img = Image::make('msg-1-fc-40.jpg')->encode('jpg', 75);
$img->fit(250, 250, function ($constraint) {
$constraint->aspectRatio();
});
// finally we save the image as a new file
$img->save('test.jpg');
如何处理超过2mb的图像?
答案 0 :(得分:0)
图像操作通常会占用大量内存,因为图像处理库通常会将所有像素“解包”到内存中。
一个3MB的JPEG文件因此可以轻松地增加到60MB的内存,这时您可能已经达到了为PHP分配的内存限制。
据我所知,XAMP仅为PHP分配128 MB RAM。
检查您的 php.ini 并增加内存限制,例如:
memory_limit = 512MB
然后重新启动服务器。
但这不是一个好方法,最好的方法是在将任何图像保存到服务器之前对其进行压缩和调整大小。