微信小程序开发:调用人像动漫化接口前先限制并缩放图片尺寸

上文说到我们在调用人像动漫化接口之前先将人像图片做了增强,但是用户自己上传的图片可能像素会很大,会超过2000*2000,因为人像动漫化接口限制,图片大小不能超过2000*2000:

 

只有阿里云有这个限制,腾讯云的限制是图片大小不能超过5M:

 

只有阿里云的有限制:

 

所以我们需要用到阿里云的图片缩放功能,不收费的:

 

阿里云的图片缩放很简单,只需要在oss图片地址后面加个参数即可缩放。

缩放逻辑:当图片的宽或高大于2000时,强制缩放为2000,另一边等比缩放。

所以需要先获取到图片的像素大小,我们使用如下api,需要先配置download白名单:

 

去MP后台配置download白名单:

 

再使用api获取图片宽高:

 

拿到了:

 

我们把这个异步接口改成同步接口:

 

我们在配置中增加一个最大像素的配置,只要超过这个像素的我们都缩放:

 

我们在阿里云oss测试一下图片缩放,这里有一张用来测试的人像图片,它的尺寸是2025*2374:

 

很显然高度是超过了2000,我们需要将高度缩放为2000,将宽度自动等比缩放即可。

经测试,只需要设置最长边即可自动缩放。

缩放指令:
https://yifangyunzhi-anime.oss-cn-shanghai.aliyuncs.com/test/Snipaste_2024-03-11_16-18-26w2200h1900.png?x-oss-process=image/resize,l_2000:

 

我将人像增强的结果给人像动漫化接口时,报错了:

 

因为人像增强后的图片不是上海区域的,而是这个:

 

所以我还得把这张图片再次上传到阿里云的上海区域的oss上才行。

以前是上传本地图片,这次是上传网络图片,不确定之前的上传方法要不要改,再次折腾:

 

 

OK!搞定。

现在的流程为:无论是通道一还是通道二上传的人像图片都会先统一上传到阿里云oss上海区域,再进行人像增强操作。

 

我先打包提测,现在时间:2024-3-12 17:22:01,估计明天大家就能用上新功能啦。

小程序名:《一方云知》。首页就是人像动漫化功能,欢迎大家使用。

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

posted @ 2024-03-12 17:29  一方_self  阅读(141)  评论(0)    收藏  举报