1 现象:
使用Image控件显示图片,对于灰度的一个图片,发现出现了锯齿,在灰度逐渐减淡的地带,出现了类似于马赛克的锯齿过度。
2 解决方法
在 上找了下原因,最终发现是一个属性设置的问题:
将这个属性默认不做设置就能解决,或者改为以下设置也可以解决。
关于该属性的几个值与物理意义:摘自参考文件(2).
Unspecified使用默认位图缩放模式,即 Linear。
LowQuality使用双线性位图缩放,虽然速度比 HighQuality 快,但输出质量较低。 LowQuality 模式与 Linear 模式相同。
HighQuality使用高质量位图缩放,虽然速度比 LowQuality 模式慢,但输出质量更高。 HighQuality 模式与 Fant 模式相同。
Linear使用线性位图缩放,虽然速度比 HighQuality 模式快,但输出质量较低。
Fant使用超高质量 Fant 位图缩放,虽然速度比所有其他位图缩放模式都慢,但输出质量更高。
NearestNeighbor使用最近邻域位图缩放,当使用软件光栅器时,该缩放提供优于 LowQuality 模式的性能。 该模式常用于放大位图。
3 锯齿模糊等显示问题的其他解决方案
在查的过程中,也找了一些关于模糊、锯齿的设置的东西。当然也有人说不管用的,当然,另几个对我这个不适用。
列举以下:
1.设置 SnapToDevicePixels=“True”
之前利用解决过有的显示器上会出现一条线。
2.设置 RenerOptions.BitmapScalingMode=“HighQuality”
3.设置 UserLayoutRounding=“True”
上说有人能解决,但是我设置了上边的NearestNeighbor以后没用。其他人可以试试。
当然,还有人说这个wpf的缺陷,建议用其他方式实现图片显示。具体可参考:
(1)WPF中Image控件图像模糊的解决方案
介绍了多种情况。
(2)WPF图片模糊的解决之路
4 关于选择那种方式的问题
而这个方法的缺点也正是其会因为过渡突然,造成锯齿、马赛克的情况,放大后,看的图片不连续、不美观。所以,使用别的方法,改进这种情况,就是一般的高质量的插值方法,按照一定的算法算出一个中间值来填充,所以连续、美观。但因为插值算法复杂,所以也比较耗资源、耗时,实时处理时可能会有卡顿等情况。
但是新的值是原来图片中没有的!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!