2014-09-05 175 views
0

如何編碼和解碼base64格式的任何圖像。Android:編碼和解碼base64

我不知道任何關於base64的東西,剛纔我才知道它以String格式保存圖像。請解釋一下base64以及如何在android編碼中使用它。 它會減小圖像的大小嗎?

在此先感謝...

+0

可能重複(http://stackoverflow.com/questions/4830711/how-to-convert-a-image-into-base64-字符串) – 2014-09-05 18:38:28

回答

0

Base64讓您表示ASCII格式的二進制數據,你可以用它來發送/接收圖像到端點

編碼/解碼檢查了這兩種方法:

public static String getBase64(Bitmap bitmap) 
{ 
    try{ 
     ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream); 
     byte[] byteArray = byteArrayOutputStream.toByteArray(); 

     return Base64.encodeToString(byteArray, Base64.NO_WRAP); 
    } 
    catch(Exception e) 
    { 
     return null; 
    } 
} 

public static Bitmap getBitmap(String base64){ 
    byte[] decodedString = Base64.decode(base64, Base64.NO_WRAP); 
    return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
} 
0

要編碼的任何文件:

private String encodeFileToBase64(String filePath) 
{ 
    InputStream inputStream = new FileInputStream(filePath);//You can get an inputStream using any IO API 
    byte[] bytes; 
    byte[] buffer = new byte[8192]; 
    int bytesRead; 
    ByteArrayOutputStream output = new ByteArrayOutputStream(); 
    try { 
     while ((bytesRead = inputStream.read(buffer)) != -1) { 
     output.write(buffer, 0, bytesRead); 
    } 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    bytes = output.toByteArray(); 
    return Base64.encodeToString(bytes, Base64.DEFAULT); 
} 

解碼:[?如何將圖像轉換成字符串的Base64]

byte[] data = Base64.decode(base64, Base64.DEFAULT); 
+0

它只是將文件轉換爲其base64表示形式,並避免對圖像進行絕對無意義的重新壓縮。 – 2014-09-05 18:53:08