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

bar*_*zos 13 android image bitmap android-intent

在我的应用程序中,我从相机拍摄照片,然后我得到该图片在相同的图片上做一些图像处理操作,但当我得到这个图片与data.getExtras().get("数据"),图片来了低分辨率而不是真正的决议.这个问题可能是什么原因?

代码就是这样;

    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");
Run Code Online (Sandbox Code Playgroud)

use*_*764 12

更加坚定的是它.如果不包含额外内容,您只能获得一个小尺寸的图像.从Android文档:

public static final String ACTION_IMAGE_CAPTURE从:API Level 3

标准意图动作,可以发送给相机应用程序捕获图像并将其返回.

调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置.如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象.这对于只需要小图像的应用程序非常有用.如果存在EXTRA_OUTPUT,则将将全尺寸图像写入EXTRA_OUTPUT的Uri值.


Igo*_*pov 9

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

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
Run Code Online (Sandbox Code Playgroud)

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

imageFileUri=Uri.parse("file:///sdcard/picture.jpg");
Run Code Online (Sandbox Code Playgroud)

这样可以将图像保存到已知位置,并且在拍摄图像后,您将能够处理它.