2011-02-20 15 views
0

私のCocoa(Mac、iOSではなく)アプリケーションのカスタムカラーピッカーを作成しようとしていますが、何か問題があります。私はコンピュータグラフィックスや描画のさまざまなパターンには十分に精通していますが、私はCocoaを初めて使っています。この問題は基本的に多階層グラフィックス技術の中で失われていると思います。Cocoa + Quartz Newbie:NSImageでピクセルの色を取得して画面をオフにする

私が実装しようとしているのは、大きなサイドバービューにドッキングされたカラーピッカーです。標準のフローティングパネルを使用するのではなく、自分で描くことをお勧めします。 (私は正当な理由がある、AppleのHIGからの分岐に関する警告は言及する必要はない)NSImage(この場合はcolorWheel.PNG)をクリックしたピクセルの色を取得する最良の方法を研究するにあたり、 Core Graphicsに入り、自分のビットマップコンテキストに画像を描画します。

...それは私が正常に来た限りです。私はうまくコンテキストを作成しましたが、ここからどこに行くのか、そしてこれが過度なものであるかどうかはわかりません。私が探しているのは、これらのクラスがリンクしている階層の強固な説明と、私が探している効果を最も良く作り出す方法です。オフスクリーンを描くことは、このアプリケーションの多くの部分で役立ちます。私はそれをよりよく理解したいと思います。

ありがとうございます。

答えて

1

クイックソリューション:

オフスクリーンで表示する必要はありません。
NSImageからNSBitmapImageRepを作成するだけです。
そして、colorAtX:y:を使用してNSColorを取得します。

もちろん、NSBitmapImageRepを作成する必要があります。
次に、ユーザーがマウスを動かすたびに色をルックアップします。
私のアプリケーションでは、パフォーマンスの問題はまったく発生しません。

NSViewを使用してPNGを表示し、座標を取得します。

関連する問題