2010-06-21 96 views
6

用于缩小图像大小的算法有哪些?什么算法用于图像缩小?

什么是更快?

什么算法是执行图像调整大小(特别是从大的600x600减小到例如超小6x6)由flash和silver player等巨人和html5?

+1

对于一个问题,这是很多问题。 – 2010-06-21 21:51:46

+4

无论您选择何种选择,图像缩小都应该谨慎小心。记住:图像也有家庭。 – 2010-06-22 00:35:13

回答

7

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

偶然实现双线性采样的麻烦在于,如果使用它将图像缩小一半以上,那么您可能会遇到与您最近的邻居相似的混淆伪像。解决方案是使用基于金字塔的方法。基本上如果你想减少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

你的意思是说双线程只能用于最后一步吗? – jayarjo 2013-02-12 18:02:47

1

通常我会坚持使用双线性滤波器来缩小比例。尽管如此,为了将图像大小调整为微小的大小,您可能会失败。大多数图标都是通过手工进行像素编辑以使其看起来最好。

Here是一个很好的资源,它很好地解释了这些概念。

1

在代码项目中有一个很棒的article显示各种图像过滤器的影响。

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

+0

我在该页面上收到404错误。我建议扩大规模的双三次,但我坚持使用双线性规模缩小。总而言之,这不会产生重大影响。 – 2010-06-22 00:39:38

+0

@Ben,链接固定。我不同意;双线性具有平滑效果,可在放大时消除锯齿,但在缩小尺寸时倾向于清除细节。无论如何,看看这篇文章。 – 2010-06-22 00:50:54

3

还有一个特殊情况:小型化JPG的超过8倍8重新调整的一个直接因素可以对原始JPG数据来完成,而无需解压缩它。 JPG存储为8x8像素的压缩块,平均像素值在第一位。因此,从磁盘或网络读取文件通常需要更多时间才能缩减文件大小。