我想將數據從一個位圖複製到使用getPixels()
的int[]
,這是我當前的代碼:拋出:IllegalArgumentException在Bitmap.getPixels()
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.
您好,我有一個當地的byte []深度緩存中,我想用它來生成位圖,任何一個有IDE中的ABT它: 位= BitmapFactory.decodeByteArray(depthBuffer,0,depthBuffer .length); ..但位圖obj的共鳴null,任何人都有這個想法? 我得到「SkImageDecoder :: Factory返回null」異常。 – CoDe 2012-05-07 12:53:36
'BitmapFactory.decodeByteArray()'方法用於解碼存儲在字節數組中的二進制JPEG數據。爲了解決您的問題,您可以嘗試使用帶有'ALPHA_8'配置的'Bitmap.createBitmap()'方法創建一個空的'Bitmap',然後使用'Bitmap.copyPixelsFromBuffer()將數組中的字節複製到位圖中。 '方法。使用'ByteBuffer.wrap()'方法從字節數組創建一個'Buffer'。 – Michael 2012-05-07 20:52:36