ページ

2009年1月17日土曜日

チェックボードを描く

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

チェックボードとは白と黒の四角を並べた模様。CoreImage にフィルタが用意されていて簡単に描ける。
http://www.blogger.com/img/blank.gif
サンプルソース:Checkboard-1.zip

実行結果:

http://www.blogger.com/img/blank.gif

フィルタはCICheckerboardGeneratorを使う。描画コードはこんな感じ。

- (void)drawRect:(NSRect)rect {

CIFilter *filter = [CIFilter filterWithName:@"CICheckerboardGenerator"];
[filter setDefaults];

[filter setValue:[NSNumber numberWithInt:10] forKey:@"inputWidth"];
[filter setValue:[CIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5]
forKey:@"inputColor0"];
[filter setValue:[CIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:0.5]
forKey:@"inputColor1"];

CIImage *ciimage = [filter valueForKey:kCIOutputImageKey];

CIContext *context = [[NSGraphicsContext currentContext] CIContext];

[context drawImage:ciimage
atPoint:CGPointZero
fromRect:NSRectToCGRect([self bounds])];
}


とても簡単にチェック模様を描ける。


情報:

Using Core Image Filters
 Core Image フィルタのドキュメント

CICheckerboardGenerator
 CICheckboardGeneratorのリファレンス

Goofy behavior with CICheckerboardGenerator filter and transparency
 CICheckboardGeneratorを描画するサンプルが載っている。

- - - -
この模様を SimpleViewerの背景で使う。どんな感じになるだろうか。