Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中“控制”像素阵列?(模糊)_Java_Android_Bitmap_Blur - Fatal编程技术网

Java 如何在Android中“控制”像素阵列?(模糊)

Java 如何在Android中“控制”像素阵列?(模糊),java,android,bitmap,blur,Java,Android,Bitmap,Blur,我试图在位图上创建一个非常简单的模糊效果,虽然我知道已经有了一些算法,但我仍然想了解它们是如何工作的。这是我到目前为止的代码,里面没有任何东西像模糊算法,我只是想知道setPixels方法是如何更好地工作的 public void blurTest(Bitmap sentBm) { Bitmap blurredBitmap = sentBm; int bmWidth = sentBm.getWidth(); int bmHeight

我试图在位图上创建一个非常简单的模糊效果,虽然我知道已经有了一些算法,但我仍然想了解它们是如何工作的。这是我到目前为止的代码,里面没有任何东西像模糊算法,我只是想知道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%的纯蓝色?这是最让我困惑的,如何从单个像素中加减值


感谢您的帮助,谢谢

查看颜色的方法。红色、绿色和蓝色。使用这些,您可以提取颜色分量值,根据需要调整它们,然后使用color.argb重新组合颜色。这就是我试图做的,但我不知道如何调整它们。例如,Blue是-16776961 0xff0000ff,但如何将其中的1/16添加到像素?Color.Blue方法应返回一个介于0和255之间的值,包括0和255。将其乘以17/16,检查它是否大于255,然后通过调用color.argba、r、g、newBlue获得新颜色。啊,谢谢你的帮助!我不小心看了看那恒定的蓝色,这使我很困惑。当然,制作一个真正的模糊效果要困难得多。但现在我对像素的工作原理有了一点更好的理解。不用担心!很乐意帮忙。您可以检查以下问题以获取示例,从而开始学习: