ページ

2008年10月11日土曜日

波紋(その14)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

NSView#dataWithPDFInsideRect の代わりに #bitmapImageRepForCachingDisplayInRect: を使うこともできる。

HDMT(July,2006)によれば「再現性、使用メモリ、パフォーマンスともに、かなりいい線いってる」とのこと。

旧コード
NSData* data = [_view2 dataWithPDFInsideRect:[_view2 bounds]];
NSImage *image1a = [[[NSImage alloc] initWithData:data] autorelease];

data = [image1a TIFFRepresentation];
NSBitmapImageRep* bitmap = [NSBitmapImageRep imageRepWithData:data];

これが下記の様になる。

新コード
NSBitmapImageRep* bitmap = [_view2 bitmapImageRepForCachingDisplayInRect:[_view2 bounds]];
[_view2 cacheDisplayInRect:[_view2 bounds] toBitmapImageRep:bitmap];


動作は問題ないようだ。コードもすっきりして良い。

NSView Class Reference - bitmapImageRepForCacingDisplayInRect: