用于图像缩小的算法是什么?
什么更快?
闪光和银色播放器以及html5等巨头的图像大小调整(例如从大600x600缩小到超小6x6)的算法是什么?
答案 0 :(得分:8)
双线性是最广泛使用的方法,可以使其运行速度与最近邻的下采样算法一样快,这是最快但最不准确的。
天线实现双线性采样的问题在于,如果使用它来将图像缩小一半以上,那么您可能遇到类似于最近邻居所遇到的锯齿伪像。解决方案是使用基于金字塔的方法。基本上如果你想减少600x600到30x30,你首先减少到300x300,然后是150x150,然后是75x75,然后是38x38,然后才使用双线性减少到30x30。
当将图像缩小一半时,双线性采样算法变得更加简单。基本上对于每个交替的行和列像素:
y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;
答案 1 :(得分:3)
有一个特殊情况:将JPG的缩小量减少8倍。可以对原始JPG数据进行8次重新缩放的直接因素,而不对其进行解压缩。 JPG存储为8x8像素的压缩块,首先是平均像素值。因此,从磁盘或网络读取文件通常需要花费更多时间来缩小它。
答案 2 :(得分:1)
通常我会坚持使用双线性滤波器来缩小比例。但是,要将图像调整为 tiny 尺寸,您可能会失败。大多数图标都是手工进行像素编辑,以使它们看起来最好。
Here是一个很好的资源,可以很好地解释这些概念。
答案 3 :(得分:1)
The Code Project中有一个很棒的article,显示了各种图像滤镜的效果。
为了缩小图像,我建议使用双三次算法;这具有自然的锐化效果,因此图像中的细节保留在较小的尺寸。