iPhone&Androidプログラミング記
英語─上達しないのは努力不足が原因ではなかった!
英語が話せない…を解決する博士開発の噂の英語教材!返品保証付!

2009年03月23日

画像の一部分を切り抜く

ゲーム系のアプリを作成していると、画像の部分切り出しをしたい場合があると思います。RPGのマップチップ等・・・
そういった場合は下記のようにすると出来ます。


UIImage *img;
CGImageRef cgImg;
CGImageRef chipImg;
CGRect cutRect;
CGRect dispRect;
CGContextRef context;

img = [UIImage imageNamed:@"hoge.png"];
cgImg = CGImageRetain(img.CGImage);

// 切り抜き座標、幅、高さ
cutRect = CGRectMake(0, 0, 32, 32);

chipImg = CGImageCreateWithImageInRect(cgImg, cutRect);

// 表示座標
dispRect = CGRectMake(100, 100, 32, 32);

context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, dispRect, chipImg);


ただし、この処理は重いので毎フレーム切り出し処理をするとかなりフレームレートが落ちます。
使用する前に切り出した画像を配列に格納しておいて、その画像を使うようにすれば速度的には大丈夫になります。

icon
icon


posted by ラキシス at 00:00 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。