首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持调整大小图像的纵横比与原始图像比例相同

保持调整大小图像的纵横比与原始图像比例相同
EN

Stack Overflow用户
提问于 2017-11-04 18:32:17
回答 3查看 983关注 0票数 0

我想在Laravel 5.3中调整我的通过干预\图像的大小。使用以下代码:

代码语言:javascript
复制
        $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行)

因此,我不希望图像被拉伸,相反,它们应该保持纵横比,如果需要的话,沿着宽度/高度留出空白。

EN

回答 3

Stack Overflow用户

发布于 2017-11-04 18:36:23

您应该添加另一个约束:

代码语言:javascript
复制
$constraint->upsize();

之后

代码语言:javascript
复制
$constraint->aspectRatio();

为了防止图像太小而被放大。

票数 0
EN

Stack Overflow用户

发布于 2017-11-04 21:10:55

你可以考虑使用像Glide这样的包来动态生成图像(裁剪、大小、效果、水印、缓存等)。并保持原始图像不变。http://glide.thephpleague.com/

票数 0
EN

Stack Overflow用户

发布于 2017-11-04 22:48:46

不能同时指定with和height!只能使用一个维度和一个widen()heighten()函数:

By Height:

代码语言:javascript
复制
$resized_thumb = Image::make($image)->heighten(320)->stream();

By Width:

代码语言:javascript
复制
$resized_thumb = Image::make($image)->widen(213)->stream();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47109773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档