解码Base 64字符串到位图失败

时间:2015-10-15 13:42:39

标签: android bitmap base64

我正处于项目中间。我想将图像从我的应用程序上传到服务器。我将图像从imageview编码并上传到服务器作为Base64字符串并将其解码回显示在imageview中。但是我遇到了问题将Base64字符串解码回bitmap。我正在

Caused by: java.lang.IllegalArgumentException: bad base-64

我用于编码和解码的代码如下:

用于编码:

Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();
            System.out.println("PicturePath:"+picturePath);
                       imgImage.setImageBitmap(BitmapFactory.decodeFile(picturePath));

            Bitmap bitmapOrg = BitmapFactory.decodeFile(picturePath);
            System.out.println("15102015 bitmap:" + bitmapOrg.toString());
            ByteArrayOutputStream bao = new ByteArrayOutputStream();
            bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);
            byte [] ba = bao.toByteArray();

            ba1= Base64.encode(ba, Base64.DEFAULT).toString();

用于解码:

byte [] encodeByte=Base64.decode(model.getmImage().toString(), Base64.DEFAULT);

            System.out.println("15102015 encodeByte:" + encodeByte.toString());
            Bitmap bitmap;
            try{

                 bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
                imgImage.setImageBitmap(bitmap);

            }catch(Exception e){
                System.out.println("15102015 Exception e:" + e.toString());

            }

其中model.getmImage()。toString()具有Base64字符串值。

请帮助我,因为我这几天过后了。我一定会验证你的答案。

提前致谢....

0 个答案:

没有答案