私はCIColorWheelGeneratorのMacAppStoreフレンドリーな実装に取り組んでいます。これは、Appleのカラーピッカーに表示されるカラーホイールを生成する単純なCIFilterです。残念ながら、これはAppleがMacAppStore宛てのアプリでの使用を許可していない私的なものの一部です。
私は部分的に成功しました、私は動作する実装を手に入れました、しかしそれはまだgenericRGB色空間で立ち往生しています。AppleOneはsRGB色空間を使用して動作します。私は回避策を見つけました:
CGColorSpaceRef cSpace = CGColorSpaceCreateWithName(kCGColorSpaceSRGB);
NSDictionary *dict = @{kCIContextWorkingColorSpace : CFBridgingRelease(cSpace),};
CIContext *ctx = [CIContext contextWithCGContext:[[NSGraphicsContext currentContext] graphicsPort] options:dict];
[ctx drawImage:_wheelImage inRect:rect fromRect:_wheelRect];
(_wheelImageは、カラーホイールジェネレーターフィルターを使用して生成されたCIImageです)。
QuartzComposerをチェックインしました。CIColorWheelGeneratorシームがsRGB色空間で動作していることを確認しました(私の色覚と、自分の実装では同じ結果が得られないという事実に基づいています)。質問が来ます:私は何かを誤解しましたか?QCで使用するCIColorWheelGeneratorは単なるCIFilterではなく、より複雑なコードが付属していますか、CIFilter(デフォルトではgenericRGB)で作業色空間を指定解除することは可能ですか?
これが写真です。Appleのカラーホイール(右側)が私のもの(論理的には左側)と同じではないことがわかります。
そして、私のアプリ(左)とAppleのカラーピッカー(右)には、いくつかの類似点があります。