解决阿里云图片超过20M无法缩放的问题

本文针对阿里云OSS图片处理超过20M无法缩放的限制,提供了两种无损解决方案:一是降低图片大小尺寸,二是降低图片质量。通过PHP的imagick扩展,可以在上传前对图片进行处理,确保图片尺寸在1000像素以内,质量压缩至1M左右,同时举例说明了如何使用阿里云的图片处理插件。
摘要由CSDN通过智能技术生成

如题,oss在处理图片时能力不足日益显现,高清无损放大他们办不到,超标图片缩小也办不到。可惜了。目前公司的业务范围为: 每天上传几千张图片,储存量每天几10+个G,买的下行流量2TB每月、每张图片10M-40M左右,像素1200px-30000PX之间,在系统中有时只需要一个缩略图,在处理时经常遇到阿里云的BUG卡脖子。

当上传至阿里云的图片为32M 时,虽然可以上传成功,但使用阿里云的插件 ,例如缩小到50%,在图片后面追加?x-oss-process=image/resize,p_50会报一个错误:Maximal size of image supported is 20971520

原因是阿里云不处理超过20M 以上的图片,fuuuuuuuuuckAliyun,那么我们需要在上传图片之前进行限制:

在安装了php扩展imagick 的条件下,执行以下代码:

方法一:无损级降低图片大小尺寸 ,将10000以上像素的图片无损降低到1000像素以内。



 $src_img = 'D:\phpstudy_pro\WWW\api.321.design\f57ce202009151149386590.jpg';
 $ai = new \Imagick($src_img);
 $ai->thumbnailImage(1200,1200);#如果给定第三个参数true 的话则按最大边1200处理
 $path = ROOT_PATH. "99999.png";
 $ai->writeImage($path);
 d($path);

方法二:无损级降低图片质量 将20M以上的图片无损 降低到1M左右

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Ho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值