微信公众号上传图片IOS客户端压缩

背景:为了能够节省流量,打算在客户端进行图片压缩
以下都是基于IOS客户端,因为Android大部分都不支持选择图片或者拍照或者支持不太好(比如小米,呵呵),所以前置做了判断,仅限IOS上传图片

方案1:
方法:使用HTML5 Canvas的特性,生成一定压缩比的BLOB对象,AJAX提交到后台。
DEMO:BUG DEMO1
问题:拍照生成的图片被挤压,下半部分是黑色。

基于这个问题,进行疯狂的google,后来在stackoverflow上面找到相关讨论,大概原因是iOS6 Safari对超过百万像素的图片文件渲染不当,导致在canvas上面抽样(subsample)异常。不明觉厉,老外也给了一些解决方案,直接拿来参考了一下。

方案2:
方法:使用ios-imagefile-megapixel或者drawImageIOSFix(老外写的函数,借鉴前者)
DEMO:BUG DEMO2
还是有问题:本来竖着的图片,结果躺着了

追求完美的我,懂的不多就是会google,继续google之,找到了一个不错的解决方案

方案3(解决了问题):
方法:canvasResize,它先使用ios-imagefile-megapixel处理图片,然后用exif-js解决图片翻转的问题。依然不明觉厉……
DEMO:完成 DEMO

《微信公众号上传图片IOS客户端压缩》有4个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注