HTML5+Exif.js+MobileBUGFix.mini.js+Canvas手机照片预览压缩方案
手机端照片上传预览、压缩、自动旋转这套方案,用的是 html5 的 canvas 加上 exif.js 和 mobileBUGFix.mini.js,配合起来蛮顺的。能拿到照片的方向角属性,再把图片按需旋转、压缩一下,基本上你上传前就能看到最终效果,挺实用的。
用 EXIF.getData
拿到原始照片里的方向信息,再通过 MegaPixImage
渲染到 canvas
,还能限制最大宽高、设置压缩质量。要是图片太大,做个预压缩就能省不少流量,对移动端友好多。
而且 canvas.toDataURL()
生成的 base64
图片,用来直接上传或预览都没问题,响应也快。iOS 拍照上传自动旋转的问题也顺带了,挺省心的。
对了,如果你想更深入了解图片压缩、Exif 的坑,或者 canvas 玩法,可以看看下面这些链接,都是我踩坑时候翻过的:
如果你做的是移动端拍照上传的场景,比如表单、证件照、头像这些,试试这套组合,轻便又靠谱。
92.11KB
文件大小:
评论区