这几天在做头像裁剪和图片上传,也遇到了图片旋转的问题。我的解决办法是:
1:服务器端处理,如PHP用exif_read_data函数读取EXIF信息,orientation是旋转方向的,
Orientation旋转角度---1:0°,6:顺时针90°, 8:逆时针90°,3:180°,然后再用imagerotate旋转图片就再保存就可以了。
2:如果在本地使用,那就先用EXIF.JS将orientation信息获取出来,旋转的角度也是上边的对应关系。再使用plus.zip.compressImage旋转就可以了。
值得注意的是EXIF.JS获取的时候必须得是一个IMG对像,图片加载完毕才能获取.读取之后你再旋转,旋转之后再IMG.SRC修改成之后旋转后的地址。非常麻烦,一般就直接传到服务端处理好了。我在搞头像裁剪的时候是在本地裁剪的,所以必须要在本地显示。
传一张我做的头像裁剪,有需要的我可以分享出来,现在还有一些小问题,只在IOS上测试了,安卓各手机差异化太大,目前只准备搞IOS版。这个头像裁剪使用的是CANVAS,支持双指放大缩小,最后直接toDataurl再POST给服务器就OK了。