调整位图图像大小



当我使用 Intent 单击图像并启动 Android 相机时,我遇到了一个问题。我通过意图数据获得的图像带有调整大小的位图图像的信息。也许我有一个错误的理解,但请建议我能做些什么来纠正它。ImageView显示与我单击的相同图像,但非常模糊

下面是底层代码:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
InputStream stream= null;
        super.onActivityResult(requestCode, resultCode, data);
        if(this.requestCode == requestCode && resultCode == RESULT_OK){
            try{
                //stream= getContentResolver().openInputStream(data.getData());
                Bundle extras= data.getExtras();
                Bitmap bitmap = (Bitmap) extras.get("data");
                imageHolder.setImageBitmap(bitmap);
            }
            catch (Exception ex){
                ex.printStackTrace();
            }
        }
    }
       try{
            //stream= getContentResolver().openInputStream(data.getData());
            Bundle extras= data.getExtras();
            Bitmap bitmap = (Bitmap) extras.get("data");
            //set value Width=200, Height=200
            Bitmap resizedimg = Bitmap.createScaledBitmap(bitmap, Width, Height, true);
            imageHolder.setImageBitmap(resizedimg);
        }
        catch (Exception ex){
            ex.printStackTrace();
        }

也许你应该将一个 uri 传递给相机,并在 ActivityResult 而不是 bitmap

我认为图像是模糊的,因为意图数据仅包含图像的thumbnail。您可以将图像保存在内部/外部存储中,然后获取它。

图像可能模糊,因为意向数据仅包含图像的缩略图。您必须将图像保存在内部/外部存储上,然后获取它。您的问题也应该是如何从相机获取全尺寸图像。https://developer.android.com/training/camera/photobasics.html 浏览此文档。

这是应该做的

Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir=
    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
output=new File(dir, "CameraContentDemo.jpeg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));
startActivityForResult(i, CONTENT_REQUEST);

参考可以在此链接中找到。

https://stackoverflow.com/a/32121829/3111083

最新更新