2009年4月23日木曜日

WebKit / WebView あれこれ

デフォルトの背景(色)を描かせないならこれ
[aWebView setDrawsBackground:NO];

透明レイヤーを持たせたいならこれ
[aWebView setAlphaValue:1.0];

透明レイヤー付きで画像(NSBitmapImageRep)が欲しいときはこれ
 NSBitmapImageRep *aBitmapImageRep = [aWebView bitmapImageRepForCachingDisplayInRect:[aWebView bounds]];
[aWebView cacheDisplayInRect:[aWebView bounds] toBitmapImageRep:aBitmapImageRep];


アンチエイリアスを切りたい(not-antialiasing, non-antialiasing, no-antialiasing …なんて言えばよいの?)ならこれ(いろいろ条件が付くがそれはもと(?)を読んでね)
@implementation WebFrameView (myextension)
- (void)drawRect:(NSRect)rect
{
[[NSGraphicsContext currentContext] setShouldAntialias:NO];
}
@end


まぁおいらがうまくいったことでしかないので,もっと正しいやり方とか素敵なやり方があるとは思うんですけどね.特に最後のなんかは.

追記(2009/04/25):
[NSBitmapImageRep initWithFocusedViewRect:]は描いた結果をbitmapとして取得,[WebView cacheDisplayInRect:toBitmapImageRep:]だと描く工程をbitmapへ実施って感じかしらね(よくわかってないけど).

0 件のコメント: