我如何控制" Android中的像素阵列? (模糊)

时间:2014-04-21 11:51:20

标签: java android bitmap blur

我正在尝试在位图上创建一个非常简单的模糊效果,虽然我知道已经存在算法,但我仍然想了解它们是如何工作的。这是我到目前为止的代码,目前没有类似于模糊算法的东西,我只是想知道setPixels方法如何工作得更好。

    public void blurTest(Bitmap sentBm) {
         Bitmap blurredBitmap = sentBm;
         int bmWidth = sentBm.getWidth();
         int bmHeight = sentBm.getHeight();

         int[] pixels = new int[bmWidth * bmHeight];           

         sentBm.getPixels(pixels, 0,bmWidth,0,0,bmWidth,bmHeight);

         for (int i = 0; i < 200000; i++) {
             pixels[i] = Color.BLACK;
         }

         blurredBitmap.setPixels(pixels, 0, bmWidth, 0, 0, bmWidth, bmHeight);

我已经对模糊算法如何工作做了一些研究,虽然我理解它们背后的理论,但我不知道如何将它应用于每个像素。例如,通常使用权重数来表示像素被模糊多少。距离中心两个像素的像素具有0.065的权重或者例如类似的像素。这是有道理的,但我如何以编程方式扫描每个像素并为附近的像素添加权重?我只需要最简单的算法,就可以学习。

或者让事情变得更简单 - 如何为所有像素添加25%的纯蓝色?这让我感到困惑,如何从单个像素中添加和减去值。

感谢任何帮助,谢谢!

0 个答案:

没有答案