如何在不平滑像素的情况下在WPF中拉伸位图

Zby*_*til 18 wpf smooth image bitmap pixels

我正在研究用WPF编写的SEM图像处理应用程序.我有一个从Canvas派生的图像显示控件,它使用DrawingVisuals显示图像和叠加(每个"图层"一个).它还使用缩放和平移变换实现缩放和平移,应用于DrawingVisuals.

当我放大图像以查看单个像素时,它们显示为平滑,显然使用双线性过滤来拉伸位图(毫不奇怪,因为WPF是通过Direct3D渲染的).但是,对于我的用例,我宁愿将单个像素视为锐利的盒子,就像在任何像Photoshop这样的图像编辑器中一样.这就是为什么我的应用程序的用户缩放图像 - >能够在像素级别上操作.

在WPF中是否有这样的选项(除了在显示位图之前手动拉伸位图)?我找不到任何东西.

在此先感谢Zbynek Vrastil捷克共和国

小智 18

终于在专家交流的帮助下找到了答案.类RenderOptions定义附加属性BitmapScalingMode,可以设置为NearestNeighbor.所以,

RenderOptions.SetBitmapScalingMode(imageDisplay, BitmapScalingMode.NearestNeighbor);
Run Code Online (Sandbox Code Playgroud)

诀窍.

Zbynek Vrastil

  • 你也可以从XAML设置它:`<Image RenderOptions.BitmapScalingMode ="NearestNeighbor"/>` (12认同)