bitdust/EarthLiveSharp

关于图像画质的一点建议

XuebingZhao opened this issue · 7 comments

  1. 由于Windows会自动将bmp格式的壁纸压缩成jpg,而系统用的压缩系数又很低,所以图片质量严重受损(如下图③对比①②,不仅清晰度下降,蓝色的大气层颜色都变了),建议把图片存成png,可以保持原样
    default

  2. 另外由于屏幕分辨率的差异,原图1100分辨率显示不全,所以我设置了93%的缩放,然后发现拼接出来的wallpaper.bmp锐度明显损失(如上图①②),目测图像差值算法用的是Bilinear,建议改成Bicubic,质量会有所提升。

确实之前没有对画质进行这么仔细的控制,学到了!我测试下

@XuebingZhao 插值选择的是Bicubic。。至于存储格式问题,需要测试下,因为我记得png可能会在win7下不兼容,不能被设置为壁纸。

@bitdust 那可能就是 Bicubic 参数的差别了,我在PS里面试了一下,Bicubic 也没法保持锐度,大概是因为非整数的缩放比,只是我第一眼以为是 Bilinear。

Win7 是可以用 png 做壁纸的,不过这个地方比较诡异:

根据我以前的测试,Win7 下用 png 也会被转格式,用 png 和 bmp 看起来都差不多,最好的方案是用高质量的 jpg,系统会保持原样,所以我以前是把网上下载的 png 转成 jpg 做壁纸。

但是当我升级到 Win10 的时候,发现 artifact 又出现了,又测试了一下发现 jpg 还是会被压缩一遍,反而png 不会被压缩了,于是就用 png 做壁纸了……不知道微软那帮人怎么搞的

所以这个问题的最佳方案是根据系统选择文件保存格式,不过会额外增加工作量,值不值得去折腾就难说了。

我也想自己改代码,不过打开源文件一看,发现了我能力不够……毕竟经验几乎为零

@XuebingZhao 非常感谢提供的信息!我会尽快测试下根据系统选择壁纸格式的方案
不过我个人主力开发电脑是win8.1。所以可能需要些时间,我尽快做出一版测试。

@bitdust 我按照 Win7 的方法在 Win8.1 上用了一年没有问题,png 的情况我就不清楚了,没有发现问题就没去测试

XP之前的更不知道了

@bitdust HighQualityBicubic 为了保证50%以下的缩放质量,预先用了一个模糊 filter 处理,所以比一般的 Bicubic 稍微模糊一点,不过这个只是一点微小差异了,有兴趣可以测试一下用 Bicubic 会不会好一点
ref1. http://photosauce.net/blog/post/image-scaling-with-gdi-part-4-examining-the-interpolationmode-values
ref2. http://richorama.github.io/2016/08/10/image-interpolation-benchmarks/