代码之家  ›  专栏  ›  技术社区  ›  clahey

createScalledBitmap的filter参数有什么作用?

  •  204
  • clahey  · 技术社区  · 14 年前

    声明 android.graphics.Bitmap.createScaledBitmap

    public static Bitmap createScaledBitmap
      (Bitmap src, int dstWidth, int dstHeight, boolean filter)
    

    但是,文档没有解释任何参数。除了 boolean filter . 有人知道它的作用吗?

    3 回复  |  直到 8 年前
        1
  •  85
  •   beekeeper    14 年前

    快速挖掘skia源代码表明(至少在默认情况下)过滤器标志会使它执行直接的双线性插值。查看维基百科或你最喜欢的图形参考,看看预期的结果是什么。传统上,在升迁图像时要执行双线性或双三次插值,在缩小图像时要执行区域平均。我有这样的印象(尽管我很高兴被纠正),即Android/Skia在没有过滤的情况下进行缩编时只进行简单的次采样,因此即使在缩编时,您也可能从过滤中获得更好的结果。(有另一种方法可以通过插值实现高质量的缩小,包括进行一系列50%的缩小。见 http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html 详情。

        2
  •  246
  •   Kjeld Schmidt    8 年前

    扩展Karan的回答:一般来说,如果缩放图像,你不会看到任何不同。 向下 但是如果你要缩放它 向上的 .

    经过 filter = false 将生成块状像素化图像。

    经过 filter = true 会给你更光滑的边缘。

    然而,正如艾耶安特在评论中指出的那样,你可能仍然看到了不同。 This is their example image.

        3
  •  3
  •   Karan    14 年前

    过滤器将设置 FILTER_BITMAP_FLAG 用于在根据您提供的值转换位图时影响位图采样的绘制。