2013/09/12

[iOS][Objective-C]UIImageを使って画像のリサイズ(Retina対応)

だいぶ前に、UIImageを使って画像のリサイズ方法を書きました。

で、その時に紹介した方法だと一点問題が発生することがわかりました。

Retinaだと解像度が2倍になるので、画像も2倍でリサイズする必要があるということ。

というわけで、Retinaにも対応させるために、UIImageクラスオブジェクトのリサイズ方法 (Retinaディスプレイ対応)を読みながら以下のように実装しました。

CGFloat scale = [UIScreen mainScreen].scale;
CGSize resizedSize;
UIGraphicsBeginImageContextWithOptions(resizedSize,NO,scale);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
[img drawInRect:CGRectMake(0, 0, resizedSize.width, resizedSize.height)];
UIImage *resizeimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
これで、Retina対応または非Retina両方に対応したリサイズ処理を実行することができます。

0 コメント:

コメントを投稿