トップ «前の日記(2013-04-03) 最新 次の日記(2013-04-22)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|

2013-04-04 [OSX][iOS]合成フィルタ

『Core Animation for Max OS X and the iPhone』の『6.4 Compositing Filters』について説明する。

サンプルコードのFilteredViewは、アウトレットのスペルが間違っている。なので、スペル間違いを我慢して、FilteredView.mのメソッド名を変更するか、FilteredView.hのアウトレットをただしいスペルに変更し、MainMenu.nibのアウトレットの繋がりを張り直す必要がある。ちなみに、著者は後者を選択した。

合成フィルタ (Compositing Filters)は、異なる画像を合成するフィルターで、書籍ではブレンドモードフィルタ (Blend Mode Filters)と呼ばれる、重ねた画像を描画するフィルタのサンプルを説明している。

フィルタの定義は以下のとおり。

- (void) applyFilter
{ 
  CIFilter *filter = [CIFilter filterWithName:@"CIColorBurnBlendMode" 
                                keysAndValues:nil];
  [[controls animator] setCompositingFilter:filter];
}

灰色で描画しているビューで、

- (void)drawRect:(NSRect)rect
{
  [[NSColor lightGrayColor] set];
  NSRectFill(rect);
}

子ビューに対してフィルタを適用すると

- (IBAction)addFilter:(id)sender
{
  if (nil == [controls compositingFilter]) {
    [self applyFilter];
  }
}

子ビューが灰色になるということのようだ。


_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)

トップ «前の日記(2013-04-03) 最新 次の日記(2013-04-22)» 編集