[英]Base64 String save only last image taken by camera
why Base64 encode only one Byte Array from byte[] ArrayList?为什么 Base64 从 byte[] ArrayList 只编码一个字节数组?
see my code below:请参阅下面的代码:
ArrayList<byte[]> stringImgArry = new ArrayList<byte[]>();
bitmap = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
stringImgArry.add(byteArray);
Log.d("LOG_TAG", " byteArray " + byteArray);//[B@73c1473
Log.d("LOG_TAG", " String_byteArray " + stringImgArry);//[[B@73c1473, [B@d50868c]
List<String> encodedImageList = new ArrayList<>();
for (int i = 0; i < stringImgArry.size(); i ++) {
encodedImageList.add(Base64.encodeToString(stringImgArry.get(i), Base64.DEFAULT));
}
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
ImgString = String.join(" NEXT IMAGE ", encodedImageList);
}
Log.d("LOG_TAG", "Array base64 image : " + ImgString);
Log.d("LOG_TAG", "encoded Image List : " + encodedImageList);
Log.d("LOG_TAG", "Array base64 image size : " + encodedImageList.size());//2
and then save ImgString to sqlite like this然后像这样将 ImgString 保存到 sqlite
mDatabase.execSQL(insertSQL, new String[]{date, description, ImgString});
and my database looks like this我的数据库看起来像这样
please anybody help me to find solution to encode Arraylist of byte array with Base64?请有人帮我找到用 Base64 对字节数组的 Arraylist 进行编码的解决方案吗?
List<String> encodedImageList = new ArrayList<>();
for (int i = 0; i < stringImgArry.size(); i ++) {
encodedImageList.add(Base64.encodeToString(stringImgArry.get(i), Base64.DEFAULT));
}
Now encodedImageList
contains an encoded string for each image.现在encodedImageList
包含每个图像的编码字符串。
If you want this as a single String
with all of them separeted by a newline you could do如果您希望将其作为单个String
,所有字符串都由换行符分隔,您可以这样做
String string = String.join("\n", encodedImageList);
Or do whatever you want with your list of encoded images.或者对编码图像列表做任何你想做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.