2009-07-03 22 views

答えて

46

NSImageは、さまざまなタイプのイメージと複数のイメージの表現を表す抽象的なデータ型です。画像の実際のタイプがあなたがやろうとしていることにとって重要でない場合は、しばしば役に立ちます。また、AppKitがそのAPI(NSImageViewなど)で受け入れる唯一のイメージクラスです。

CGImageはビットマップしか表現できません。 CGImageは、実際のビットマップデータを取得する必要がある場合には、適切なタイプです。ブレンドモードやマスキングなどのCoreGraphicsの操作には、CGImageRefsが必要です。 CGImageRefsを使用してNSBitmapImageRefsを作成し、それをNSImageに追加することができます。

私はドキュメントが最高のCIImageを説明思う:

CIImageオブジェクトは、それに関連付けられた画像データを持っていますが、それはイメージではありません。 CIImageオブジェクトはイメージ "レシピ"と考えることができます.CIImageオブジェクトはイメージを生成するために必要なすべての情報を持っていますが、Core Imageは実際にイメージをレンダリングするまで指示しません。この「レイジー評価」方法により、Core Imageは可能な限り効率的に動作することができます。

CIImagesはCGImageRefsのように、彼らはまた、NSBitmapImageRepsに変換することができ、マックOS Xに付属している様々なGPUに最適化されたコアImageフィルタを使用するために必要なタイプですが、。