加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Base64编码在Android中占用太长时间

发布时间:2020-12-15 02:12:36 所属栏目:Java 来源:网络整理
导读:我用相机捕捉图像.我将文件保存在公共照片目录中,并将Uri保存到该文件中. 我想将图像保存在Base64字符串中并将其放在HashMap上,然后将其放入XML文件中. protected Void doInBackground(Void...voids) { options.inJustDecodeBounds = false; //Bitmap bmp =
我用相机捕捉图像.我将文件保存在公共照片目录中,并将Uri保存到该文件中.

我想将图像保存在Base64字符串中并将其放在HashMap上,然后将其放入XML文件中.

protected Void doInBackground(Void...voids) {
        options.inJustDecodeBounds = false;
        //Bitmap bmp = BitmapFactory.decodeFile(imageFilePath,options);
        InputStream in = null;
        try {
            in = getContentResolver().openInputStream(Uri.parse(mCurrentPhotoPath));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        options.inSampleSize = 2;
        Bitmap image = BitmapFactory.decodeStream(in,null,options);
        int imgHeight = image.getHeight();
        int imgWidth = image.getWidth();
        while(imgHeight>2000){
            imgHeight = imgHeight / 2;
        }
        while(imgWidth>2000){
            imgWidth = imgWidth / 2;
        }

        Bitmap test = Bitmap.createScaledBitmap(image,imgWidth,imgHeight,false);

        String stest = base64EncodeDecode.encodeToBase64(test);


        items.put("image",base64EncodeDecode.encodeToBase64(test);
        return null;
}

Base64需要很长时间才能对其进行编码.
encodeToBase64方法

public String encodeToBase64(Bitmap image) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    image.compress(Bitmap.CompressFormat.JPEG,100,baos);
    byte[] b = baos.toByteArray();

    return Base64.encodeToString(b,Base64.DEFAULT);
}

你能告诉我在编码时是否做错了吗?

我希望我的问题很清楚.

亲切的问候!

解决方法

如果你得到!!!失败的粘合剂交易!错误可能是因为您向其他Activity传递了大量数据,您可以发送多少限制.尝试将图像压缩到50%或30%image.compress(Bitmap.CompressFormat.JPEG,50,baos);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读