Interface Builder では、コンテンツ フィルターのスタックを作成できます。
n 個のフィルターがある場合、結果は f n o of n-1 o..of 1として計算されます。ここで、複数のスタックを作成し、それらを 1 つのフィルターに構成したいと考えています。
どうやってやるの ?
Interface Builder では、コンテンツ フィルターのスタックを作成できます。
n 個のフィルターがある場合、結果は f n o of n-1 o..of 1として計算されます。ここで、複数のスタックを作成し、それらを 1 つのフィルターに構成したいと考えています。
どうやってやるの ?
これまでフィルターのスタックを作成したことはありませんが、IB がフィルターの NSArray を作成すると思います。さまざまなフィルター スタックのすべてのコンテンツを含む配列を作成し、それをビューのフィルター スタックとしてインストールするだけでよいはずです。
これはiOSではなくMac OSだと思いますか?(iOS はまだフィルタ スタックをサポートしていないと思います。)
解決策は、 CIFilterGenerator クラスを使用することでした。
CIFilterGenerator クラスは、既存の CIFilter オブジェクトを連鎖させて複雑な効果を作成することにより、CIFilter オブジェクトを作成するためのメソッドを提供します。(フィルター チェーンは、CIFilterGenerator オブジェクトで接続されている CIFilter オブジェクトを参照します。) 複雑な効果を CIFilterGenerator オブジェクトとしてカプセル化し、ファイルとして保存して、再度使用できるようにすることができます。フィルター ジェネレーター ファイルには、チェーン化されたすべての CIFilter オブジェクトのアーカイブされたインスタンスが含まれています。
そして、それは CIFilter として利用可能になります:
/Library/Graphics/Image Units/ にコピーしたフィルター ジェネレーター ファイルは、CIPlugIn クラスによって提供される読み込みメソッドのいずれかが呼び出されると読み込まれます。CIFilterGenerator オブジェクトは、そのファイル名によって登録されるか、存在する場合はその説明で指定したクラス属性によって登録されます。