2016-11-10 105 views
0

我使用下面的代碼我的位圖圖像編碼爲一個byte [],然後爲一個字符串,但在其編碼爲字節的時間[]它說無法編碼..無法轉換圖像位圖的ByteArray

Bitmap bm = BitmapFactory.decodeFile(path); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     (bm).compress(Bitmap.CompressFormat.JPEG, 100, stream); 
     bm.recycle(); 
     byte[] byteFormat = stream.toByteArray(); 
     String encodedImage = Base64.encodeToString(byteFormat, Base64.NO_WRAP); 

該應用程序工作正常,但我卡在這裏。建議問題。

+0

這裏,檢查接受的答案:http://stackoverflow.com/questions/4830711/how-to-convert-a-image- into-base64-string – resw67

+0

'將它編碼爲byte []'你正在將位圖壓縮爲一個jpg字節數組。之後,base64將字節編碼爲一個字符串。目前還不清楚你正在談論哪個行動/陳述。 – greenapps

+0

@greenapps,我真正想要做的是將圖像存儲爲字節數組,然後將其轉換爲字符串,然後我將存儲該字符串,當我想要使用圖像時,我會將該字符串轉換爲字節數組然後在一些imageview中顯示圖像。 –

回答

0
public static byte[] bitmapToByteArray(Bitmap bitmap){ 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    bitmap.recycle(); 
    return byteArray; 
} 
0

試試這對我來說這個作品:)

public String imageToBaseString(String path) { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 1; 
     Bitmap bm = BitmapFactory.decodeFile(path, options); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.PNG, 100, baos); 
     byte[] b = baos.toByteArray(); 
     return Base64.encodeToString(b, Base64.DEFAULT); 
    }