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以上了。格式是没有问题的。追问一下就上面那段代码能在保存的时候设置大小不?不能的话,估计就得重构了。灰常感谢、、
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
安卓系统相机,相册获取图片并显示
调用系统相机拍照返回图片,调用相册图片。结果返回UI显示
android 系统相机返回图片(为原图)
调用系统相机拍照。这里是返回原图。自己定义图片路径
Android调用系统相机拍照(返回为原图)
Android调用系统相机拍照,默认返回为缩略图大约几十K,一些场景下返回缩略图时不行的。在这个源码里分别实现了调用系统相机后返回缩略图(几十k)和原图(1—n M不等的图片(即正常用相机拍照的图片))。
Android调用相机拍照返回图片太小
解决方案:只为记录参考http://blog.csdn.net/qq_30380777/article/details/52850332 点击button: private void startPhoto(){ if(SDCardUtil.cheekSDCardIsMounted()) { Intent intentToCamera = new Intent(Media
Android调用相机拍照并返回路径和调用系统图库选择图片
 调用系统图库: Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_CODE_IMAGE); 获取图片路径 @Override  protected void onAct
Android 调用系统相机拍照的返回结果
1.打开相机的Intent Action: MediaStore.ACTION_IMAGE_CAPTURE,下面为它的注释: /** * Standard Intent action that can be sent to have the camera application * capture an image and return it. * *
linux下位图结构解析(二)
目录目录 前言 代码 总结前言前面已经写过一篇 linux下位图结构解析(一),但是对于位图结构体还是写的不够完美。这篇博客主要提供一个更好的位图源文件定义。看起来会清爽很多!代码 bmp.h #ifndef BMP_H #define BMP_Htypedef unsigned char u8; typedef unsigned short u16; typedef unsigned int
Android 调用系统相机,拍照并返回显示
1.添加系统权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:na
Android 7.0调用系统相机返回路径问题
public void startCheckPic() { int api = SystemUtils.getSystemInfo(); if (api > 23) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null); filePath
调用android系统相机拍照并将图片传指定路径并获取相片
public void onClick(View v) { if (v.getId() == R.id.btn_take) { // 调系统相机 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { L