data.getExtras().get("data") android中低分辨率图像的结果

Posted

技术标签:

【中文标题】data.getExtras().get("data") android中低分辨率图像的结果【英文标题】:data.getExtras().get("data") result of low resolution image in android 【发布时间】:2011-08-25 12:09:50 【问题描述】:

在我的应用程序中,我从相机拍摄了一张照片,然后我让这张照片对同一张照片进行一些图像处理操作,但是当我使用 data.getExtras().get("data") 获得这张照片时,图片会附带低分辨率不是真正的分辨率。问题的原因可能是什么?

代码就是这样的;

    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
          startActivityForResult(intent , CAMERA_PIC_REQUEST);
    

    protected void onActivityResult(int requestCode , int resultCode , Intent data )
    
        if( requestCode != 0)
         
            ImageView image = (ImageView)findViewById(R.id.imageView1);
                thumbnail = (Bitmap)data.getExtras().get("data");

【问题讨论】:

可能是您存储它的方式,也可能是您在检索它时使用的对象类型。由于我们在您的代码中都看不到,因此如果不看到您的代码的这些部分,我们就无法判断。 @user432209 没有其他代码都是我的 变量“thumbnail”表明您需要较低分辨率的图像。您是从教程中获得此代码的吗?无论哪种方式,我们都必须查看设置“数据”额外变量的代码。 【参考方案1】:

Mightier 做到了。如果不包括额外内容,您只会得到一个小尺寸的图像。来自 Android 文档:

公共静态最终字符串 ACTION_IMAGE_CAPTURE 自:API 级别 3

可以发送的标准 Intent 操作让相机应用程序捕获图像并将其返回。

调用者可能会传递一个额外的 EXTRA_OUTPUT 来控制此图像的写入位置。如果 EXTRA_OUTPUT 不存在,则在额外字段中将小尺寸图像作为位图对象返回。这对于只需要小图像的应用程序很有用。如果存在 EXTRA_OUTPUT,则将全尺寸图像写入 EXTRA_OUTPUT 的 Uri 值。

【讨论】:

【参考方案2】:

在广播意图之前,您应该在其中添加额外内容:

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);

其中 imageFileUri 可以是 SD 卡上的输出文件名:

imageFileUri=Uri.parse("file:///sdcard/picture.jpg");

这会将图像保存到已知位置,并在拍摄图像后进行处理。

【讨论】:

以上是关于data.getExtras().get("data") android中低分辨率图像的结果的主要内容,如果未能解决你的问题,请参考以下文章

位图始终在相机意图中返回null

相机图像太小

防止 NullPointerException 警告的最佳方法?

在android中裁剪后保存图像

android,,onActivityResult的作用是啥啊,requestCode, resultCode是啥意思啊?

关于java中 get提交方式的乱码问题。