这两天在 ios 上微信开发,涉及到图片获取以及预览,其中遇到的坑真是无数个,其中最大的就是 ios 拍照的图片方向问题。
在 ios 上是以横拍为正方向,竖拍的话,你会发现图片的宽度是大于高度的,当你把通过微信接口获得的图片的 localId 赋值给 img 的 src 时,就会出现我们看到的方向和实际的方向不一样,当然通过调用微信上的拍照接口或者用拍照软件拍照,或者对图片进行美化处理后不会出现上述情况。
但是如果要选择以前拍的竖拍的照片,就会出现这个问题,我找了好久,好多种办法,例如画到 canvas 再旋转(跨域问题,不能实现),例如上传到后台处理(时间太久)。
今天终于发现一种简单方法可以解决了,就是调用微信图片接口的时候
wx.chooseImage ({
count: 1, // 默认 9
sizeType: ['compressed'],
});
sizeType 设为 compressed ,这样微信会去生成压缩图,压缩图就不会有问题了。
这个问题困扰我好久好久,找了好多方法都没解决,现在找到这个比较简单的方法,也希望分享给其他有类似需求的开发者,大家不要再找的那么悲剧。
关于 orientation ,可以搜索“ ios orientation ”了解更多。
1
iyaozhen 2015-09-06 13:23:35 +08:00 via Android
iOS 微信图片上传接口确实比较好用。 Android 上 bug 比较多(不能选择 sd 卡的照片,上传容易失败等)。
|