简体   繁体   English

Base64 String 仅保存相机拍摄的最后一张图像

[英]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我的数据库看起来像这样这是我的sqlite结构

please anybody help me to find solution to encode Arraylist of byte array with Base64?请有人帮我找到用 Base64 对字节数组的 Arraylist 进行编码的解决方案吗? 第一个日志猫 第二个日志猫 第三个日志猫 第 4 个日志猫 第 5 个日志猫

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM