WPF中的16位灰度图像显示

Dan*_*gel 5 c# opengl directx wpf

我正在开发一个显示16位灰度图像的应用程序.应用程序的UI最初是使用Win Forms创建的,由于Win Forms不支持16位灰度,我编写了一个自定义的openGL控件来显示图像.在过去的几个月里,我们将UI转换为WPF,但继续通过WindowsFormsHost使用openGL图像显示.

WPF是基于DirectX的,所以尝试摆脱openGL是有意义的,但WPF本身是否支持16位灰度图像?或者我是否必须创建DirectX控件?

此外,openGL控件不仅用于显示图像数据.控制器允许用户以各种方式操作图像(翻转,旋转,缩放,平移,裁剪等); 以及注释图像(绘制线条,矩形,测量角度等).如果我只是使用WPF来显示图像,我如何使用WPF进行操作和注释?另外,我使用着色器在图像纹理上进行一些颜色映射.WPF是否可以这样,或者我必须在显示前手动对图像数据进行颜色映射?

我从未使用过DirectX,所以如果需要编写DirectX控件,学习和实现我需要的东西有多难?

Sha*_*men 5

对于着色器部件,WPF可以访问HW着色器(如果需要,它可以在SW中模拟它们),它们被称为位图效果.

Greg Schechter介绍了如何在他的博客中编写自定义效果