画像をスケーリングする比率を決定するために、次のコードを使用しています ( Trevor Harmon の UIImage+Resizeから借用)。
CGFloat horizontalRatio = 600 / CGImageGetWidth(imageRef);
CGFloat verticalRatio = 600 / CGImageGetHeight(imageRef);
CGFloat ratio = MAX(horizontalRatio, verticalRatio);
600 は、スケーリングされた画像に必要な最大サイズを表します。CGImageGetWidth と CGImageGetHeight は size_t を返します。これは、ARC によれば、iPhone プラットフォーム (iOS 5) では unsigned long に評価されます。現在のコードの問題は、ratio が常に 0.0000 と評価されることです。imageRef の幅と高さは実際には w=768、h=780 なので、比率は MAX(0.781, 0.769) = 0.78 になるはずです。どうすればいいですか?
PS UIImage の initWithCGImage:scale:orientation に上記のコードを使用すると、スケールが予想とは異なる動作をすることがわかりました。比率 0.78 を渡すと、画像が拡大されました。幅または高さを目的のサイズ (CGImageGetWidth(imageRef) /600 など) で割ると、問題が修正されました。