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

标签 java arrays android-studio base64

为什么 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/

相关文章:

java - Spring POST 不返回有效数字

javascript - 隐藏推送的属性

python - 如何在 Python 中使用索引列表对 np.array 进行索引

javascript - 检查多维数组长度

java - 谷歌库 play-services-location 和 play-services-analytics 出错

java - 替换导致 Android 中的外键不匹配

java - 从 java.sql.Connection 获取 SQL

android - 为什么当我删除 @SuppressLint "only be called from with the same library group"时 Android Studio 会显示 ("RestrictedApi")?

android-studio - 我未能使用 gradle 命令行来构建 android 示例代码

java - 将 ActionListener 添加到按钮