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需要很长时间才能对其进行编码. 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);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |