將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通過UIImagePNGRepresentation轉換成.png格式文件的Data,這一步去除EXIF信息;
2.用生成的Data去生成新的UIImage(newImage),這一步為壓縮文件大小做准備;
3.通過UIImageJPEGRepresentation(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