这两天在 ios 上微信开发,涉及到图片获取以及预览,其中遇到的坑真是无数个,其中最大的就是 ios 拍照的图片方向问题。
在 ios 上是以横拍为正方向,竖拍的话,你会发现图片的宽度是大于高度的,当你把通过微信接口获得的图片的 localId 赋值给 img 的 src 时,就会出现我们看到的方向和实际的方向不一样,当然通过调用微信上的拍照接口或者用拍照软件拍照,或者对图片进行美化处理后不会出现上述情况。
但是如果要选择以前拍的竖拍的照片,就会出现这个问题,我找了好久,好多种办法,例如画到 canvas 再旋转(跨域问题,不能实现),例如上传到后台处理(时间太久)。
今天终于发现一种简单方法可以解决了,就是调用微信图片接口的时候
wx.chooseImage ({
count: 1, // 默认 9
sizeType: ['compressed'],
});
sizeType 设为 compressed ,这样微信会去生成压缩图,压缩图就不会有问题了。
这个问题困扰我好久好久,找了好多方法都没解决,现在找到这个比较简单的方法,也希望分享给其他有类似需求的开发者,大家不要再找的那么悲剧。
关于 orientation ,可以搜索“ ios orientation ”了解更多。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.