在我的应用程序中,我从相机拍摄照片然后我得到那张照片在同一张照片上进行一些图像处理操作但是当我用data.getExtras()得到这张照片时。得到(“数据”),图片随附低分辨率不是真正的分辨率。这个问题可能是什么原因?
代码就是这样;
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");
答案 0 :(得分:12)
Mightier钉它。如果不包含额外内容,您只能获得一个小尺寸的图像。来自Android文档:
public static final String ACTION_IMAGE_CAPTURE 自:API Level 3
标准意图动作,可以发送给相机应用程序捕获图像并将其返回。
调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象。这对于只需要小图像的应用程序非常有用。如果存在EXTRA_OUTPUT,则将将全尺寸图像写入EXTRA_OUTPUT的Uri值。
答案 1 :(得分:9)
在广播意图之前,您应该加入额外内容:
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
其中imageFileUri可以在SD卡上输出文件名:
imageFileUri=Uri.parse("file:///sdcard/picture.jpg");
这会将图像保存到已知位置,并且在拍摄图像后,您将能够处理它。