2016-09-15 72 views
-2

以前我是一個Bitmap圖像轉換爲String使用以下Android中轉換一個字節爲String

public String getStringImage(Bitmap bmp) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    byte[] imageBytes = baos.toByteArray(); 

    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
    return encodedImage; 
} 

的方法但現在我以字節形式具有File中,我想獲得的這個文件

我已經試過

public String getStringbytes(byte[] buffer) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    buffer.compress(Bitmap.CompressFormat.JPEG, 100, baos);// this is the error 
    byte[] imageBytes = baos.toByteArray(); 

    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
    return encodedImage; 
} 

我怎麼傳遞給方法的字節轉換爲的?換句話說,我如何修改之前壓縮Bitmap圖像的部分以捕獲要轉換爲String的字節?

+1

你在第二個函數中用「在JPEG中壓縮byte []'緩衝區」的含義是什麼意思? – kennytm

+0

這可能會幫助你[鏈接](https://www.mkyong.com/java/how-do-convert-byte-array-to-string-in-java/) –

+0

你的代碼中沒有文件。你問如何將字節轉換爲字符串或bytearray到base64編碼的字符串?你已經提出瞭如何在你的代碼中做到這一點,那麼你的實際問題是什麼? – tak3shi

回答

0

byte[]通過BitmapFactory.decodeByteArray轉換爲位圖並傳遞新的位圖到第一個方法不是更容易嗎?

+0

僅當'byte []'包含圖像時。 – Henry

+0

@Henry這是算法本身的先決條件。如果不是的話,編纂爲JPG將是無稽之談。 –

1

我不知道你問什麼,但如果你要問的是:

「我有一個函數,通過執行以下轉換步驟需要一個位圖作爲輸入,並返回一個字符串:位圖 - >字節[] - > base64字符串,

但我也想要一個函數,將字節數組作爲輸入,並返回一個字符串,具有以下轉換步驟:byte [] - > base64 String「

那就試試這個:

public String getStringbytes(byte[] buffer) { 

String encodedImage = Base64.encodeToString(buffer, Base64.DEFAULT); 
return encodedImage; 

}

相關問題