Bitmap.getPixels()中的IllegalArgumentException

|| 我想使用
getPixels()
将位图中的数据复制到
int[]
中,这是我当前的代码:
int[] pixels = new int[myBitmap.getHeight() * myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0,
        myBitmap.getHeight(), myBitmap.getWidth());

for(int i = 0; i < myBitmap.getHeight() * myBitmap.getWidth(); i++) {
    Log.e(TAG, \"pixel\"+i+\"\" +pixels[i]);
}
但这引发了异常:
05-04 20:24:08.281: ERROR/AndroidRuntime(5700): Uncaught handler: thread main exiting due to uncaught exception
05-04 20:24:08.296: ERROR/AndroidRuntime(5700): java.lang.IllegalArgumentException: y + height must be <= bitmap.height()
05-04 20:24:08.296: ERROR/AndroidRuntime(5700):     at android.graphics.Bitmap.checkPixelsAccess(Bitmap.java:818)
05-04 20:24:08.296: ERROR/AndroidRuntime(5700):     at android.graphics.Bitmap.getPixels(Bitmap.java:771)
05-04 20:24:08.296: ERROR/AndroidRuntime(5700):     at com.tecmark.Jjilapp$TouchView.onDraw(Jjilapp.java:206)
有任何想法吗?我只是将y参数指定为0。     
已邀请:
您的宽度和高度已切换。
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getHeight(), myBitmap.getWidth());
public void getPixels (int[] pixels, int offset, int stride, int x, int y, int width, int height)
http://developer.android.com/reference/android/graphics/Bitmap.html#getPixels(int [],int,int,int,int,int,int)     
我认为这段代码中有一个错字。尝试这个:
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0,
   myBitmap.getWidth(), myBitmap.getHeight());
    

要回复问题请先登录注册