我正在尝试在 Android 中进行一些图像处理。我需要获取位图的一大块像素信息。所以我尝试使用 Bitmap 类方法之一 getPixels()。但是,似乎我没有正确使用它,或者我误解了该方法行为的唯一目的。
例如,我正在执行以下操作以从任意位置(位图坐标)x、y 获取位图的 10 x 10 区域的像素信息。
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
int[] pixels = new int[100];
bitmap.getPixels(pixels, 0, bitmap.getWidth(), x, y, 10, 10);
我得到了 ArrayIndexOutOfBoundsException。我一直在谷歌搜索,看看我做错了什么,但我一无所知。大部分关于 getPixels() 使用的示例或问题通常是针对提取整个图像的像素信息的情况。因此 int 数组的大小通常为 bitmap.getWidth()*bitmap.getHeight(),x 和 y 值为 0、0,width、height 为位图的宽高。
位图的 getPixels() 是否不是为我的使用目的而设计的(获取位图子区域的一大块像素信息)?还是我使用不当?有没有另一种方法可以做到这一点,也许使用不同的类?
如果有人对此有话要说,我将不胜感激。谢谢。