4 回答

TA貢獻1827條經(jīng)驗 獲得超9個贊
Java 在 base64 字符串中使用空格對位圖進行解碼,請嘗試以下操作:encodedString.replaceAll("\\s+","");

TA貢獻1982條經(jīng)驗 獲得超2個贊
試試這個:
public String encodeTobase64(Bitmap image) {
Bitmap immagex=image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);
Log.e("EncodedImage: ", imageEncoded);
return imageEncoded;
}
在活動結(jié)果() 中使用下面的代碼
InputStream imageStream = null;
try {
imageStream = this.getContentResolver().openInputStream(selectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
encodeTobase64(yourSelectedImage);

TA貢獻1825條經(jīng)驗 獲得超6個贊
您可以嘗試通過您選擇的文件的路徑來獲取位圖:
在您的 onActivity結(jié)果
Uri targetUri = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(targetUri,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
//getting the actual path of the file
String path = cursor.getString(columnIndex);
cursor.close();
Bitmap bm = BitmapFactory.decodeFile(path);
//your encoding function is ok
encodedString = encodeImage(selectedImage);

TA貢獻1895條經(jīng)驗 獲得超7個贊
右。。我已經(jīng)找到了答案?;旧?,Android認為在我的字符串中插入多個空格很有趣。
通過執(zhí)行此操作,您可以將其全部刪除:
activity.getEncodedString().replaceAll("\s+","")
添加回答
舉報