[XCODE] UIImageの画像を切り抜くには
今日は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に変換して、不要になったメモリを破棄する
ここはメモリ管理をiPhoneに任せてたら特に不要な部分かと思われます。UIImage *smallImage = [UIImage imageWithCGImage:partImageRef]; [aImage release]; CGImageRelease(wholeImageRef); CGImageRelease(partImageRef);
最後に
画像の切り抜きは調べました。上記の関数にたどり着くまで、時間がかかったー(; ̄ェ ̄)でも出来て良かった。画像編集出来ると、楽しいですね。