簡體   English   中英

Android:對base64進行編碼和解碼

[英]Android: Encode & Decode base64

如何對base64格式的任何圖像進行編碼和解碼。

我沒有任何關於base64的信息,只是我現在才知道它以String格式保存圖像。 請解釋一下base64以及如何在android編碼中使用它。 會縮小圖像的尺寸嗎?

提前致謝...

編碼任何文件:

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);
}

解碼:

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

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM