2016-08-11 9 views
0

最近、UIColorのCIColorプロパティを取得しようとすると失敗するコードが発生しました。 UIColorは単純な[UIColor blackColor]として初期化され、そのCIColorを取得しようとすると例外が発生しました。UIColorとCIColorはどのように比較し、2つの目的は何ですか?

CIColor *aCIColor = [[UIColor blackColor] CIColor]; //fails 

CIColorとUIColorの違いは何ですか?なぜこれが起こりますか?

答えて

2

CIColor、UIColorのように、色のチャネル寸法を表すために使用されます。ドキュメントとしての違いはそれを置く

は次のとおりです。

あなたはこのようなCIFilter、CIContext、およびCIImage、など はビルトイン を活用するために、他のコアイメージクラスと一緒にCIColorオブジェクトを使用しますイメージを処理する際のコアイメージフィルタ。 WWDC 2013から

ので、CIColorは、色空間に対応していないと、あなたが知っている、ので、それは は、CMYKカラーを行うことはありません、それはパターンを行うことはありません。

これはすべてあなたが失うものです。

あなたがそれを必要としていると思われる場合は、おそらく の戦略が適切ではありません。

CIColor *color = [CIColor colorWithCGColor:[[UIColor blackColor] CGColor]]; 

すでに私の前に回答されているもの以外の代替の方法、あなたは次のようにブラックUIColorのCGColorを作成することによって、CIColorを作成している可能性が

3

ドキュメントが

を言うには、AppKitの色のオブジェクトを使用して、コアイメージの色のオブジェクトを初期化します。

だから、UIKitフレームワークからそのUIColorCIColorUIColorCIColor間の差分

CIColor *aCIColor = [[CIColor alloc] initWithColor:[NSColor blackColor]]; 

クラスNSColorからを作成し、iOSのに使用する必要があります。 Docから​​

UIColorオブジェクトは、色と時には不透明度(アルファ値)を表します。 あなたは色データを格納するUIColorオブジェクトを使用することができ、かつ を描く時に、あなたはマックOSXAvailable in OS X v10.4 and later

に現在の塗りと線の色 CoreImageフレームワークから

CIColorと使用を設定するためにそれらを使用することができます

CIColorクラスには、色の値と、その色の値が有効な色空間( )が含まれています。 のCIColorterオブジェクトは、CIFilter、CIContext、および CIImageなどの他のCore Imageクラスと一緒に使用して、 イメージの処理時に組み込みのCore Imageフィルタを利用します。

0

(SWIFTバージョン)

var clcor = CIColor(color: UIColor.redColor()) 

OBJこれを試してみてください。

CIColor *aCIColor = [[CIColor alloc] initWithColor:[NSColor blackColor]]; 
0

UIImage上CIColorプロパティのドキュメントは言う:

このプロパティは、スロー色objの場合は例外コアイメージの色で初期化されませんでした。

UIColorのCIColorにアクセスするには、最初にCIColorから作成する必要があります。

一方

、あなたはinitWithColor:初期化子を使用して、任意のUIColorから新しいCIColorを行うことができます。

CIColor *color = [[CIColor alloc] initWithColor:UIColor.blackColor]; 
関連する問題