10

图像缩小使用什么算法?

什么更快?

flash、silver player、html5等巨头对图像大小(特别是从大600x600缩小到超小6x6)执行什么算法?

4

4 回答 4

11

双线性是使用最广泛的方法,可以使其运行速度与最近邻下采样算法一样快,这是最快但最不准确的算法。

双线性采样的幼稚实现的问题在于,如果您使用它来将图像减少一半以上,那么您可能会遇到类似于最近邻遇到的混叠伪影。对此的解决方案是使用基于金字塔的方法。基本上如果你想把 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;
于 2010-06-22T01:30:16.757 回答
3

有一种特殊情况:将 JPG 缩小 8 倍以上。可以对原始 JPG 数据进行直接 8 倍的重新缩放,而无需对其进行解压缩。JPG 存储为 8x8 像素的压缩块,平均像素值在前。因此,从磁盘或网络读取文件通常比缩减文件所需的时间更多。

于 2010-06-22T10:44:09.187 回答
1

通常我会坚持使用双线性滤波器进行缩小。但是,要将图像调整为很小的尺寸,您可能会不走运。大多数图标都是手工进行像素编辑的,以使它们看起来最好。

是一个很好的资源,可以很好地解释这些概念。

于 2010-06-22T00:37:27.600 回答
1

The Code Project 上有一篇优秀的文章展示了各种图像过滤器的效果。

对于缩小图像,我建议使用双三次算法;这具有自然的锐化效果,因此图像中的细节以较小的尺寸保留。

于 2010-06-22T00:38:39.660 回答