次のコードを使用して、スプライトから画像を取得します。また、iPhone 4 (HD バージョン) を除くすべての場所で問題なく動作します。
- (UIImage *)croppedImage:(CGRect)rect {
CGImageRef image = CGImageCreateWithImageInRect([self CGImage], rect);
UIImage *result = [UIImage imageWithCGImage:image];
CGImageRelease(image);
return result;
}
iPhone 4 は、sprite.png の代わりに HD バージョンの画像 (sprite@2x.png) を自動的に読み込みます。元の画像の縮尺は 2 ですが、結果の画像の縮尺は 1 でサイズが間違っています。
iPhone 3G[s] と iPhone 4 の異なる縮尺を考慮して、この動作をどのように処理しますか?
私はこのドキュメントを読みましたが、ここでCGImageCreateWithImageInRectを使用することについては何も言いません。