iOS開發中圖片方向的獲取與更改


iOS開發中 再用到照片的時候  或多或少遇到過這樣的問題  就是我想用的照片有橫着拍的有豎着排的  所以導致我選取圖片后的效果也橫七豎八的   顯示效果不好

 比如:

圖中紅圈選中的圖片選取的是橫着拍的圖片 所以顯示的頭像也是橫着的 顯示效果不佳

問題描述:

使用過iPhone或者iPad的朋友在拍照時不知是否遇到過這樣的問題,將設備中的照片導出到Windows上時,經常發現導出的照片方向會有問題,要么橫着,要么顛倒着,需要旋轉才適合觀看。而如果直接在這些設備上瀏覽時,照片會始終顯示正確的方向,在Mac上也能正確顯示。最近在iOS的開發中也遇到了同樣的問題,將拍攝的照片上傳到服務器后,再由Windows端下載該照片,發現手機上完全正常的照片到了這里顯示的橫七豎八。同一張照片為什么在不同的設備上表現的不同?如何能夠避免這種情況

解決方法:

要想解決這個問題  我們就需要拿到圖片的相關信息,去檢查圖片的方向   從而根據方向去做出調整:

UIImage對象中有一個屬性叫:imageOrientation,這里面便保存了方向信息:

它一共有八個值:

那么我們便可以根據這一屬性對圖像進行相應的旋轉,從而將圖像的原始數據旋轉至正確的方向,在瀏覽照片時無需方向信息便可正常瀏覽。

 

解決方法:

 - (UIImage *)normalizedImage {
     if (self.imageOrientation == UIImageOrientationUp) return self; 
  
     UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
     [self drawInRect:(CGRect){0, 0, self.size}];
     UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
     return normalizedImage;
 }

這里是利用了UIImage中的drawInRect方法,它會將圖像繪制到畫布上,並且已經考慮好了圖像的方向

 

參考詳情:cocoChina


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM