gpt4 book ai didi

java - Base64字符串仅保存相机拍摄的最后一张图像

转载 作者:行者123 更新时间:2023-12-01 16:14:07 25 4
gpt4 key购买 nike

为什么 Base64 只对 byte[] ArrayList 中的一个字节数组进行编码?

请参阅下面的代码:

 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

然后像这样将 ImgString 保存到 sqlite

mDatabase.execSQL(insertSQL, new String[]{date, description, ImgString});

我的数据库看起来像这样 here i the sqlite structure

请有人帮我找到用 Base64 编码字节数组的 Arraylist 的解决方案吗? 1st Logcat 2nd Logcat 3rd Logcat 4th Logcat 5th Logcat

最佳答案

List<String> encodedImageList = new ArrayList<>();
for (int i = 0; i < stringImgArry.size(); i ++) {
encodedImageList.add(Base64.encodeToString(stringImgArry.get(i), Base64.DEFAULT));
}

现在encodedImageList包含每个图像的编码字符串。

如果您希望将其作为单个String,并且所有这些都由换行符分隔,您可以这样做

String string = String.join("\n", encodedImageList);

或者对编码图像列表执行任何您想要的操作。

关于java - Base64字符串仅保存相机拍摄的最后一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62449732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com