將 Bitmap 壓縮為 PNG/JPEG 字節數組,再用 Base64.encodeToString 編碼為字符串,便於網絡傳輸或 JSON 嵌入。
public String bitmapToBase64(Bitmap bitmap) {
if (bitmap == null) return "";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// PNG 無損,JPEG 有損壓縮質量 0-100
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
// 使用
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
String base64 = bitmapToBase64(bitmap);
// 發送到服務器或存儲
compress(format, quality, stream):quality 僅對 JPEG 生效,PNG 忽略。Base64.DEFAULT 標準編碼,含換行;Base64.NO_WRAP 無換行(推薦網絡傳輸)。byte[] decoded = Base64.decode(base64, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decoded, 0, decoded.length);
三行代碼完成圖片 Base64 雙向轉換,業務集成零負擔。