UIImageの画像を切り抜くには

こんにちは、@yoheiMuneです。
今日はiPhoneアプリケーション作成において、画像の一部を切り抜く方法を学んだので、ブログに残しておきたいと思います。
今日はライトなネタ♪(´ε` )


まずは、画像を読み込んで、UIImageオブジェクトを作る

UIImage *aImage = [UIImage imageNamed:@"doc.png"];

アプリケーションのルートフォルダに保存してある「doc.png」という画像ファイルを読み込んで、UIImageのオブジェクトを作成します。簡単簡単(*´∇`*)


続いてCoreGraphicsフレームワークの画像であるCGImageRefを作成する

CGImageRef wholeImageRef = [aImage CGImage];

UIImageのオブジェクトの持つCGImageプロパティを取得します。ここも簡単。

そーしたら、画像を切り抜いて、切り抜き後のCGImageRefを取得する

float w = wholeImageRef.size.width;
float h = wholeImageRef.size.width;
CGRect rect = CGRectMake(w/4, h/4, w/2, h/2); // 真ん中部分を切り抜く
CGImageRef partImageRef = CGImageCreateWithImageInRect(wholeImageRef, rect);

ここでは、「CGImageCreateWithImageInRect」という関数がみそですね。


最後に、CGImageRefからUIImageRefに変換して、不要になったメモリを破棄する

UIImage *smallImage = [UIImage imageWithCGImage:partImageRef];

[aImage release];
CGImageRelease(wholeImageRef);
CGImageRelease(partImageRef);

最後に

画像の切り抜きは調べました。上記の関数にたどり着くまで、時間がかかったー(; ̄ェ ̄)でも出来て良かった。画像編集出来ると、楽しいですね。


以下は関連ページです。参考になれば幸いです。