如何在android项目的res文件夹中获取图像的像素

时间:2012-11-09 18:55:46

标签: android getpixel

新到android。我不认为这里的任何问题与我的相同。

我已将图片加载到我的res文件夹中。我将它们放入一个可绘制的文件夹中。如何在res.drawable文件夹中获取名为bb.png的图像的像素?

我需要一个简单的解释,说明如何将图像文件转换为变量,以及' getPixel(...)'命令我需要使用。我不需要显示图像,只需从中获取像素阵列,并检查像素是黑色还是白色。感谢任何帮助,谢谢!

麦克

1 个答案:

答案 0 :(得分:4)

实际上真的很容易!

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

有一个Bitmap对象,有几个选项。

bm.getPixel(x,y)将返回与int课程中的int相对应的Color,例如Color.BLACKColor.WHITE

此外,bm.copyPixelsToBuffer(Buffer destination)会将所有像素复制到Buffer对象中,您可以逐个像素地进行搜索。

查看文档以获取更多详细信息。

Bitmap Documentation

Color Documentation

以下是一段代码示例,假设您的/ res / drawable文件夹中有一个名为“image”的图片。

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
int pixelColor = bm.getPixel(10,10); //Get the pixel at coordinates 10,10

if(pixelColor == Color.BLACK) {
  //The pixel is black
}

else if(pixelColor == Color.WHITE) {
  //The pixel was white
}

显然,你应该小心获得像素。确保像素存在,并且坐标不大于图像。要获得Bitmap的维度,只需分别使用bm.getHeight()bm.getWidth()