2011-03-09 35 views
6

被壓縮,我以下列方式解碼字節數組位圖已經在Java中

Bitmap bmpSig = getMyBitMap(); 
int size = bmpSig.getWidth() * bmpSig.getHeight(); 
ByteArrayOutputStream out = new ByteArrayOutputStream(size); 
bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out); 
byte[] bytSig = out.toByteArray(); 

那麼我想從字節數組中的Android ImageView的顯示圖像壓縮的位圖。當我這樣做時,我得到一個完全黑色的圖像。

ImageView myImg = (ImageView) findViewById(R.id.img_view); 
myImg.setImageBitmap(BitmapFactory.decodeByteArray(bytSig, 0, bytSig.length)); 

我猜想那是因爲我的思念)BitmapFactory.decodeByteArray前一個步驟(扭轉JPEG壓縮。或者我誤解了壓縮是如何工作的?

回答

6

我沒有意識到我的位圖背景(來自Canvas對象)是透明的。由於該位圖只是白色背景上的黑色線條,因此黑色圖像由於壓縮爲JPEG而使圖像呈現黑色背景。

我已經改變

bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out); 

bmpSig.compress(Bitmap.CompressFormat.PNG, 100, out); 

它工作正常。

+1

那......你只需要使用黑色的深色陰影。 – 2011-03-09 10:02:36