2012年8月19日日曜日

UIImageのリサイズ

画像のリサイズ方法を調べたのでメモで。

画像のリサイズ

ソース

UIImage *image = [UIImage imageNamed:@"hoge.png"];  //1
CGSize newSize = CGSizeMake(50, 50);  //2

/*大事なところ*/
UIGraphicsBeginImageContext(newSize);  //3
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];  //4
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  //5
UIGraphicsEndImageContext();  //6 
/*大事なところ*/

UIImageView *imageView = [[UIImageView alloc] init];  //7
imageView = [[UIImageView alloc] initWithImage:newImage];  //7
[self.view addSubview:imageView];  //7
[imageView release];

流れは以下のようになります。

  1. リサイズしたい画像の生成
  2. リサイズ後のサイズを指定
  3. UIGraphicsBeginImageContextメソッドでグラフィックスコンテキストを作成
  4. drawInRectでその領域に描画
  5. UIGraphicsGetImageFromCurrentImageContextメソッドで 3, 4 で描画した画像を取得してUIImage型に再合成
  6. グラフィックスコンテキスト終了
  7. UIImageViewを作成し画面に描画

上で出てくるグラフィックスコンテキストは、グラフィックスを描画するための情報(描画属性)を格納しておくためのものです(参考)。

参考記事

UIImage のリサイズ - iPhone will be interactive!
サイズ指定(CGRect CGPoint CGSize)- iPhoneアプリ開発の虎の巻
iPhoneアプリ開発、その(174) UIImageを縮小する - テン*シー*シー
グラフィックスコンテキスト - Xlib Programming Lectures

0 件のコメント:

コメントを投稿