iOS 上传的图片在HTML上显示时,图片方向信息(EXIF Orientation)异常

  • Post author:
  • Post category:其他






iPhone 6s


拍摄


的照片上传到服务器之后,






Web网页



上看到图片被



逆时针旋转了90度






这让我很惆怅呐!



出现这个问题其实是因为上传的图片为


.jpg


格式,


.jpg

文件含有EXIF信息



其中EXIF信息中有个参数


Orientation


可以表明图片的显示方向。


经过一段时间的Debug,我发现我上传的图片里的EXIF中的

Orientation

参数的值为

6



我所期望的其实是1,这里是6,所以图片发生了旋转。




那么,如何解决这个问题呢?


重新设置这个


Orientation


值吗?我这么懒,当然不想啦!


幸好,


.png格式的图片并不包含EXIF信息




如果你确实想修改EXIF信息,后文我也顺便附上了修改教程的链接。




所以我可以将

UIImage

通过


UIImagePNGRepresentation

转换成

.png

格式文件的

Data




然后上传即可,


而且

服务端并没有规定我必须传.jpg格式的图片






然而,我发现这样上传的图片的

文件大小很大

诶!


有多大呢?



至少









UIImageJPEGRepresentation





(image, 1.0






)生成的要大很多








那么,如何

解决这个文件大小问题

并且

还要去除EXIF信息

呢?



我想你也应该猜到我的做法了,哈哈!


1.将

UIImage

通过


UIImage

PNG

Representation

转换成

.png

格式文件的

Data

,这一步

去除EXIF信息




2.用生成的

Data




生成新的

UIImage

(newImage),这一步为

压缩文件大小

做准备;


3.通过

UIImage

JPEG

Representation


(newImage, 0.6


)得到没有EXIF并且文件大小达标的Image的Data。









Okay,上传吧!





参考资料:


http://www.cocoachina.com/ios/20150605/12021.html


http://www.cnblogs.com/robinkey/archive/2013/01/21/2869930.html


http://www.onesl.com/web/ylsh/2016120802.html


http://www.bcty365.com/content-142-3055-1.html


http://blog.csdn.net/mouxiaoxiong/article/details/52922116






Ficow原创,转载请注明出处:


http://www.cnblogs.com/ficow/p/7307376.html





转载于:https://www.cnblogs.com/ficow/p/7307376.html