2 tianzhaoai tianzhaoai 于 2015.06.15 23:10 提问

位图解析系统相机返回的图片异常

为了使图片不失贞,将系统相机照的图片先保存在通过BitmapFactory.decodeFile(imgPath)获取该图片的位图,偶尔会出现Unable to decode stream,说的无法解析该图片流,但是我到文件夹下,图片是存在的,我将图片的路径输出也是正确的。这种情况偶尔会发生,真心不知道怎么办了。求大神帮忙。。。急需。谢谢。下面是调用系统相机的代码,当照片拍完事就已经保存完成了。

    /**
     * @category 调用相机获取图片
     */
    public void getCamera() {
        if (SDState.equals(Environment.MEDIA_MOUNTED)) {
            new DateFormat();
            String name = DateFormat.format("yyyyMMdd_hhmmss", Calendar.getInstance(Locale.getDefault())) + ".jpg";
            File file = new File(path + "/StuPhotoInfoTemp/");
            if (!file.exists())
                file.mkdirs();// 创建文件夹
            imgPath = path + "/StuPhotoInfoTemp/" + name;
    //      System.out.println("getCamera().imgPath-->"+imgPath);
            File tempFile = new File(Environment.getExternalStorageDirectory(), "/StuPhotoInfoTemp/" + name);
            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(tempFile.getAbsolutePath())));
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
            startActivityForResult(intent, PERSONAL);
        }
    }

2个回答

windsunmoon
windsunmoon   Rxr 2015.06.16 09:47
已采纳
        Bitmap bitmapOrg = BitmapFactory.decodeFile(picPaths.get(arg1), options);

关于图片处理,网上很多,你可以搜下

devmiao
devmiao   Ds   Rxr 2015.06.15 23:39

可能是文件的格式不标准,或者尺寸太大。把这些图片拿出来单独检查下。

tianzhaoai
tianzhaoai 谢谢啦。貌似真的是图片太大了,解析为空的都是基本上在1M以上了。格式是没有问题的。追问一下就上面那段代码能在保存的时候设置大小不?不能的话,估计就得重构了。灰常感谢、、
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片