2014-10-18 200 views
-1

我有一個Base64編碼字符串的圖像。我想將其轉換成BLOB類型,並將其保存在數據庫.. 我如何將base64字符串圖像轉換爲android中的blob?

String base64Image="iVBORw0KGgoAAAANSUhEUgAAAGAAAACgCAYAAADzcGmMAAAACSV..."; 

這是我試過..

byte[] byteImage=org.apache.commons.codec.binary.Base64.decodeBase64(befImage.getBytes()); 

json.put("during_unloading_photo", byteImage); 

其中JSON是我的JSONObject和 during_unloading_photo是blob類型的列名稱。

+0

請不要cha以這樣的方式提出問題,其含義完全不同,現有的答案不再適合。如果您還有其他問題,請打開一個新問題。 – Henry 2014-12-15 16:54:25

回答

0

getBytes給你字符串的字節,它不會做base64解碼。您將需要使用Base64解碼器來完成轉換。一個小小的搜索會顯示你可以使用的幾個選項。

+0

我試過使用byte [] byteImage = Base64.decode(base64Image,Base64.DEFAULT);但它的nt工作.. – Thejas 2014-10-18 07:58:36

+0

似乎你使用'android.util.Base64',對吧?什麼不工作? – Henry 2014-10-18 08:04:32

+0

我用android.util.Base64。我試圖從移動數據庫中獲取一個圖像,並將其存儲爲Base64字符串,並將其轉換爲blob類型,以便將其保存在主數據庫中。 – Thejas 2014-10-21 12:49:33

1

保存BLOB到DataBase你有你的base64 satring圖像轉換爲Byte[],然後你可以保存byte[]db。 轉換base64 string爲位圖

public static Bitmap decodeBase64Profile(String input) { 
    Bitmap bitmap = null; 
    if (input != null) { 
     byte[] decodedByte = Base64.decode(input, 0); 
     bitmap = BitmapFactory 
       .decodeByteArray(decodedByte, 0, decodedByte.length); 
    } 
    return bitmap; 
} 

,現在你可以將這個BitmapByte[]像:

public static byte[] getBytesFromBitmap(Bitmap bitmap) { 
    if (bitmap!=null) { 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream); 
     return stream.toByteArray(); 
    } 
    return null; 
} 

那麼最後你可以保存此字節[]到Db.make確保您的列名有typeblob

享受您的代碼:) -

相關問題