2012-12-19 39 views
3

大家好,旋轉肖像的UIImage,不知怎的,有UIImageOrientationRight方向

我在旋轉的肖像UIImage(即WIDTH < HEIGHT)的問題,不知怎的,具有等於UIImageOrientationRight的方向。我不知道這是如何來的,但卻它與iPhone拍攝的在我的圖書館幾圖像4.

這是我的代碼發生(即工作,但只有當方向等於UIImageOrientationUp) :

UIGraphicsBeginImageContextWithOptions(rotatedScaledRect.size, NO, 0.0); 
CGContextRef myContext = UIGraphicsGetCurrentContext(); 
CGContextSetInterpolationQuality(myContext, kCGInterpolationHigh); 

CGContextTranslateCTM(myContext, 
         (rotatedScaledRect.size.width/2), 
         (rotatedScaledRect.size.height/2)); 
CGContextConcatCTM(myContext, transformation); 

CGContextScaleCTM(myContext, 1.0, -1.0); 

CGContextDrawImage(myContext, CGRectMake(-roundf(newImage.size.width/2), -roundf(newImage.size.height/2), newImage.size.width, newImage.size.height), [newImage CGImage]); 

newImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

我需要申請CGContextConcatCTM,因爲我有幾個級聯的圖像轉換。

我試過幾種不同的方法無濟於事。

在此先感謝您的幫助。

+0

我有同樣的問題,如果圖像方向不是0,這個腳本不起作用 – Pion

+0

有這個問題的解決方案[這裏](http://stackoverflow.com/questions/20204495/mfmailcomposeviewcontroller-image-orientation ),其中還包括對實際發生情況的冗長解釋。 – Gallymon

回答

0

首先,請原諒我的英語,因爲它不是我的母語。我希望能夠給出答案並不晚!

我有一個類似的問題,因爲這個原因,從iPhone或iPod攝像頭拍攝的庫加載照片。如果這是你的情況,你可以在這裏找到一些信息:https://discussions.apple.com/thread/2495567?start=30&tstart=0,特別是從一個回答說,「蘋果選擇使用EXIF數據中的方向標誌來通知程序顯示圖像如何旋轉它,使圖像呈現正確的「。

因此,對於負載從庫中的照片與iPhone Cammera考慮,你必須這樣做:

ALAssetRepresentation *assetRep = [photo defaultRepresentation]; 
CGImageRef imageRef = [assetRep fullResolutionImage]; 
UIImage *image = [UIImage imageWithCGImage:imageRef scale:[assetRep scale] orientation:[assetRep orientation]]; 

其中的照片是從庫中提取的ALAsset對象。

嗯,我希望這可以幫助!