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