Hatena::Groupiphone-dev

inuchinがiPhoneとObjective-Cに翻弄される日記 このページをアンテナに追加 RSSフィード

2010-01-29

画像の一部を現在のコンテキストに描画する方法

05:54 | はてなブックマーク - 画像の一部を現在のコンテキストに描画する方法 - inuchinがiPhoneとObjective-Cに翻弄される日記

http://www.saturn.dti.ne.jp/~npaka/iphone/GraphicsQCEx/index.html

上記のサイトを参考にしながら、QuartzCoreで画面描画するルーチンを書いています。

UIImageに画像ファイルをロードしてきて、画面にイメージ全体を描画するのは本当に楽勝なんですね。

ところが、画像の一部を描画しようと思って、UIImageのリファレンスを追いかけたのですが、

スケーリングする全体表示はあるものの、該当する関数が見つからないんです。

// Imageの描画(等倍 一部描画)
- (void)drawImage:(UIImage*)image x:(float)x y:(float)y w:(float)w h:(float)h {
	CGImageRef cgImage = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(x, y, w, h));
	UIImage *img = [UIImage imageWithCGImage:cgImage];
	[img drawInRect:(CGRectMake(x,y,w,h))];	
	CGImageRelease(cgImage);
}

こんな感じで、画像のコピーしたい領域と同じサイズの画像を作って、それを描画しています。

シミュレーターではさくさく動くのですが、実機(iPod Touch 第1世代)だと、めちゃくちゃ遅いんです。

Winの時は、メモリ上にVRAMイメージ(DIB)を持っていて、その中でやりくり(メモリ操作)をしていました。

最終的に、そのVRAMイメージ(DIB)をメインコンテキストに書き出していましたが、

iPhoneでも同じようなことをやってあげたほうがいいんでしょうかねぇ〜?

ChacidyChacidy 2012/02/03 23:20 Great common sense here. Wish I'd thhogut of that.

kjadpzkkjadpzk 2012/02/04 02:06 D2ZJp7 <a href="http://sghgobuyhsev.com/">sghgobuyhsev</a>

cmjqxwfzyercmjqxwfzyer 2012/02/06 04:27 fCKJJu , [url=http://yzbihdbpiddw.com/]yzbihdbpiddw[/url], [link=http://ahonxuxjpiaj.com/]ahonxuxjpiaj[/link], http://xbjqwxpuvrxq.com/

xfkeeaxfkeea 2012/02/06 18:26 q3ZEK4 <a href="http://swxjsxtwxwms.com/">swxjsxtwxwms</a>

gvkimybgvkimyb 2012/02/11 22:09 7IDDoV , [url=http://cxvsqervxmvq.com/]cxvsqervxmvq[/url], [link=http://xflykrrqvqtd.com/]xflykrrqvqtd[/link], http://wttverbrccnv.com/

ゲスト



トラックバック - http://iphone-dev.g.hatena.ne.jp/inuchin104/20100129