2011-11-23 32 views
1

我工作的一個WPF應用程序,我期待檢索屏幕上的一個像素的顏色值(屏幕是我的應用程序是顯示窗口)。WPF:獲取使用VB.NET(不使用GDI)下像素

我發現了一個教程,顯示如何使用API​​ GDI32做到這一點,但因爲這是一個WPF應用程序我正在尋找一種方式來做到這一點,而無需使用GDI。

我還發現瞭如何從使用CroppedBitmap一個圖片內的檢索像素的示例;但是,我沒有在我的應用程序中使用圖像。

有誰知道如何做到這一點?

謝謝!

+0

我假設你的意思是你的應用程序之外。 – SLaks

+0

不,我正在談論我的應用程序。我試圖在我的WPF應用程序中定義的區域(這恰好是一個畫布)獲取鼠標旁邊的像素的顏色值。 – Frinavale

回答

1

全面披露:我已經到WriteableBitmapEx開源項目做出了貢獻,但它不是我的圖書館我也沒有與它的主人

,我知道做到這一點香草WPF是唯一的辦法附屬使用RenderTargetBitmap將畫布渲染爲位圖,然後使用WriteableBitmap API獲取指向正在討論的像素的指針。這將是一個非常緩慢的操作,因爲渲染操作涉及創建臨時(軟件)表面,但它適用於不頻繁的操作,例如塗料「顏色選擇器」類型的應用程序。

另請參見WriteableBitmapEx庫,這對GetPixel和SetPixel功能,這將幫助你在這個例子。

+0

感謝您的信息。爲了我自己的好奇心,我必須檢查一下。我最終在我的主應用程序中使用了一個新的Telerik控件,但我認爲你的解決方案將工作......從未想過將畫布序列化爲位圖以便使用裁剪技術:)我會在我有時間回到那個項目! – Frinavale

+0

嘿,我在心臟黑客;) Telerik的做一些偉大的東西,我之前已經使用自己的音樂庫中的商業應用程序和評價他們對輕量/高性能。 –