HTML5+Exif.js+MobileBUGFix.mini.js+Canvas手机照片预览压缩方案

手机端照片上传预览、压缩、自动旋转这套方案,用的是 html5canvas 加上 exif.jsmobileBUGFix.mini.js,配合起来蛮顺的。能拿到照片的方向角属性,再把图片按需旋转、压缩一下,基本上你上传前就能看到最终效果,挺实用的。

EXIF.getData 拿到原始照片里的方向信息,再通过 MegaPixImage 渲染到 canvas,还能限制最大宽高、设置压缩质量。要是图片太大,做个预压缩就能省不少流量,对移动端友好多。

而且 canvas.toDataURL() 生成的 base64 图片,用来直接上传或预览都没问题,响应也快。iOS 拍照上传自动旋转的问题也顺带了,挺省心的。

对了,如果你想更深入了解图片压缩、Exif 的坑,或者 canvas 玩法,可以看看下面这些链接,都是我踩坑时候翻过的:

如果你做的是移动端拍照上传的场景,比如表单、证件照、头像这些,试试这套组合,轻便又靠谱。

zip 文件大小:92.11KB