爲了確定在以縮放圖像的比例,我使用以下代碼(從Trevor Harmon's UIImage+Resize借用):如何在size_t上操作並以CGFloat結束?
CGFloat horizontalRatio = 600/CGImageGetWidth(imageRef);
CGFloat verticalRatio = 600/CGImageGetHeight(imageRef);
CGFloat ratio = MAX(horizontalRatio, verticalRatio);
的600表示欲用於縮放的圖像的最大大小。根據ARC的說法,CGImageGetWidth和CGImageGetHeight返回size_t,在iPhone平臺(iOS 5)上評估爲無符號long。 本代碼的問題是該比率總是評估0.0000。 imageRef的寬度和高度實際上是w = 768,h = 780,所以比率應該是MAX(0.781,0.769)= 0.78。我如何?
P.S.當我使用上面的代碼爲UIImage的initWithCGImage:scale:orientation:我發現縮放比我預期的工作不同:傳遞的比例爲0.78 放大圖像。將寬度或高度除以所需的大小(如在CGImageGetWidth(imageRef)/ 600等中),修復了問題。
您是否試過600.0 iso 600 ...使float/float = float? – tryme 2012-01-06 15:47:57