在我的应用程序的一部分中,我试图将图像裁剪成拼图之类的碎片,然后通过Image Intervention和-> response()将其提供服务。 一切正常,但问题在于性能。
注意: 图像是即时裁剪的。
比方说,图像有60个片段,这意味着60个裁剪和60个响应。要花费这么长时间才能完成。即使是36张图像,也要花费约13秒的时间。
有人建议使用Image Intervention缓存,但是并没有做太多,因此我的方法根据参数进行裁剪。所以每次都是不同的包裹。
当前考虑进行一次裁剪,然后保存。因此,我将使用保存的裁剪宗地,因此避免对每个宗地进行laravel响应。但是问题是,我正在提供的图像是敏感的并且是私人的。所以我不能将其存储在公共场所。如果我想将其存储在“存储”中,则必须创建一个方法,然后再次创建-> response(),它不会改变任何内容。
代码:
方法: 公共函数getParcel(Request $ request,$ row,$ column) {
$img = Image::make('images/test.jpg');
$width=$img->width();
$height=$img->height();
$scopeW=$width/5;
$scopeH=$height/5;
$padderW=$scopeW*($column-1);
$padderH=$scopeH*($row-1);
return $img->crop(floor($scopeW), floor($scopeH),floor($padderW) ,floor($padderH)) ->response();
}
视图中这样调用: (在double foreach内部,用于行和列)
<img width="100" src="view/get/{{$i}}/{{$j}}" >
卡在这些选项之间。哪一个更可行和更一致? 预先感谢。