想用canvas实现固定大小108*108,图片等比例缩小并居中,能用图片的色素值自动填充剩余的背景

从字节系统里看到的效果,不管上传的图片是什么尺寸都会等比例转为108*108,并且按照图片的色素值自动填充剩余的背景,找了些参考资料但总有问题无法实现。。。
上传2个效果图

原始图9:16
image
image.png
原始图16:9
image
image.png

https://blog.csdn.net/weixin_...
https://blog.csdn.net/wanshao...

阅读 5.6k
5 个回答

可以参考楼上的css方案用canvas实现一版.

  1. 让图片的短边对齐画布,长边居中,即让画面铺满画布,达到background-size: cover的效果,再将其模糊处理.
  2. 再次绘制图片,让图片长边对其画布,短边居中,即background-size: contain.
  3. 将处理后的图片上传服务器

昨天已实现,有时间放上DEMO,主要逻辑还是在drawImage的参数计算上,都用上了
image.png

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏