2011-11-23 6 views
1

WPFアプリケーションで作業していて、画面上のピクセルのカラー値を取得しようとしています(アプリケーションが表示しているウィンドウ)。WPF:VB.NETを使用してピクセルを取得する(GDIを使用しない)

gdi32 APIを使用してこれを行う方法を示すチュートリアルが見つかりましたが、これはWPFアプリケーションなので、GDIを使用せずにこれを行う方法を探しています。

また、CroppedBitmapを使ってピクチャ内からピクセルを取得する方法の例も見つかりました。しかし、私は自分のアプリケーションでイメージを使用していません。

これを達成する方法を知っている人はいますか?

ありがとうございます!

+0

私はあなたのアプリの外にいると思います。 – SLaks

+0

いいえ、私は自分のアプリケーション内で話しています。私はWPFアプリケーションで定義された領域(キャンバスになる)内のマウスの隣にあるピクセルのカラー値を取得しようとしています。 – Frinavale

答えて

1

完全な開示:私は、しかし、それは私のライブラリではありませんも私はその所有者

私はあるバニラWPFでこれを行うために知っている唯一の方法と提携しています、WriteableBitmapExオープンソースプロジェクトに貢献してきましたRenderTargetBitmapを使用してキャンバスをビットマップにレンダリングし、WriteableBitmap APIを使用して問題のピクセルへのポインタを取得します。これは、レンダリング操作が一時的な(ソフトウェア)サーフェスの作成を伴うため、非常に遅い操作ですが、塗装の「カラーピッカー」タイプのアプリケーションなど、まれな操作には適しています。

WriteableBitmapExライブラリもご覧ください。この例ではGetPixelとSetPixelの機能があります。

+0

情報ありがとうございます。私は自分の好奇心のためにこれをチェックする必要があります。私は主なアプリケーションで新しいTelerikコントロールの1つを使用して終了しましたが、私はあなたのソリューションが動作すると思います...切り取りテクニックを使用するためにキャンバスをビットマップにシリアル化することは考えていませんでした:)私はそのプロジェクトに戻る時間があります! – Frinavale

+0

heh、私はハッカーです;) Telerikはいくつかの素晴らしいものを作っています。私は市販のアプリで以前にそのライブラリを使っていましたが、軽量/高性能であると評価しています。 –

関連する問題