且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

WPF图片放大后模糊的解决方法

更新时间:2022-09-14 15:08:39

原文:WPF图片放大后模糊的解决方法

WPF中显示图片的方式很多,可以用Image控件来显示图像,或者直接设置一个控件的Background。图片的放大也很简单,直接设置显示图片的控件的Width和Height属性就可以了。
最近一个需求是把一张图片放大十倍左右,我最开始是直接把Image控件的Width和Height乘以放大倍数。
比如这张3824*2494的图片
WPF图片放大后模糊的解决方法
当把图片放大到8倍左右时,效果是这样的
WPF图片放大后模糊的解决方法
但是用户对效果却不满意,他希望看到的是每个像素的样子,因为他要用肉眼来分辨很多相似的图片,而这些图片的细微区别就在于这些像素点颜色有些不同。(就是一个类似找茬的小游戏)。
在网上查了一些资料,发现需要设置Image的BitmapScalingMode和ClearTypeHint属性。
xaml代码如下

 <Image  Name="Img" RenderOptions.BitmapScalingMode="NearestNeighbor" RenderOptions.ClearTypeHint="Enabled" ></Image>

后台代码为:

RenderOptions.SetBitmapScalingMode(Img,BitmapScalingMode.NearestNeighbor);
RenderOptions.SetClearTypeHint(Img,ClearTypeHint.Enabled);

设置这两个属性后,显示的图片如下
WPF图片放大后模糊的解决方法