2011-11-23 36 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的做一些伟大的东西,我之前已经使用自己的音乐库中的商业应用程序和评价他们对轻量/高性能。 –