设置意图选择器捕获的位图像素

时间:2018-09-21 17:44:48

标签: android bitmap pixel editing

当我尝试设置由拍照选择器加载的位图的像素时,我的小应用程序导致崩溃,但我不知道为什么。为此,我选择了this code

这是我当前代码的重要部分:

public class MainActivity extends AppCompatActivity {

  private Bitmap selectedImage;

  ...

  private void changebitmap() {

        ImageView imageView = findViewById(R.id.imageView);

        for(int x = 0; x < selectedImage.getWidth(); x++) {
            for(int y = 0; y < selectedImage.getHeight(); y++) {
                selectedImage.setPixel(x, y, Color.argb(255, 128, 128 ,128));
            }
        }

        imageView.setImageBitmap(selectedImage);

  }
}

我不知道为什么它不起作用。

致谢

1 个答案:

答案 0 :(得分:0)

好吧,我一个人得到。

问题在于意图中的位图没有正确的Config。

在API级别19上,您可以设置为

selectedImage.setConfig(Bitmap.Config.ARGB_4444);

在较低级别(如我)上,您可以按正确的配置将其逐像素复制到另一个位图。

selectedImage = Bitmap.createBitmap(copy.getWidth(), copy.getHeight(), Bitmap.Config.ARGB_4444);

for(int x=0; x < copy.getWidth(); x++) {
  for(int y=0; y < copy.getHeight(); y++) {

    selectedImage.setPixel(x, y, copy.getPixel(x, y));

  }
}

致谢