我希望通过Laravel 5.3中的Intervention \ Image调整大小。 使用以下代码:
$resized = Image::make($image)->resize(640, null, function ($constraint) {
$constraint->aspectRatio(); })->stream();
$resized_thumb = Image::make($image)->resize(320, 213)->stream();
我得到这样的图像: http://clasifire.com/listing?category=1(如果您点击第一张图片转到其详细信息,您会发现其高度实际上更高)
但是这个图像会失去纵横比。 我想要的是,例如,考虑一下craigslist上的这个列表:https://sfbay.craigslist.org/d/antiques/search/ata,(向下滚动3-4行)
所以我不希望图像被拉伸,而是应该保持纵横比,如果需要,沿宽度/高度留下空白。
答案 0 :(得分:0)
您应该添加另一个约束:
$constraint->upsize();
之后
$constraint->aspectRatio();
如果图片太小,可以防止图像放大。
答案 1 :(得分:0)
您可以考虑使用像Glide这样的软件包来动态生成图像(裁剪,大小,效果,水印,缓存等)并保持原始图像不变。 http://glide.thephpleague.com/
答案 2 :(得分:0)
你不应该一起指定和高度!仅使用一个维度和一个widen()
OR heighten()
函数:
按身高:
$resized_thumb = Image::make($image)->heighten(320)->stream();
按宽度:
$resized_thumb = Image::make($image)->widen(213)->stream();