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中低分辨率图像的结果的主要内容,如果未能解决你的问题,请参考以下文章
防止 NullPointerException 警告的最佳方法?
android,,onActivityResult的作用是啥啊,requestCode, resultCode是啥意思啊?