iPhone で画像をリサイズする方法です。

下記で、UIImage *image の画像を 320×480 のサイズにリサイズしています。

CGImageRef imageRef = [image CGImage];
size_t w = CGImageGetWidth(imageRef);
size_t h = CGImageGetHeight(imageRef);
size_t resize_w, resize_h;

if (w>h) {
    resize_w = 320;
    resize_h = h * resize_w / w;
} else {
    resize_h = 480;
    resize_w = w * resize_h / h;
}

UIGraphicsBeginImageContext(CGSizeMake(resize_w, resize_h));
[image drawInRect:CGRectMake(0, 0, resize_w, resize_h)];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

イメージピッカーで写真ライブラリから選択した画像を iPhone に表示させるときなどに使用しました。

実際にリサイズしている処理は最後の4行です。大きな流れは以下のような感じです。

  • UIGraphicsBeginImageContext でリサイズする大きさを作成
  • drawInRect でその領域に描画
  • UIGraphicsGetImageFromCurrentImageContext で UIImage を取得

関連する投稿