如何获得高分辨率图像

时间:2017-07-17 10:20:39

标签: android bitmap android-camera high-resolution

我的问题是,当我从相机拍照并传递给另一个活动时。图像不是高分辨率。如何以高分辨率制作图像。我的代码在下面

主要活动

    Button btn_cam = (Button) findViewById(R.id.btn_cam);
    btn_cam.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            MainActivity.this.startActivityForResult(intent, CAMERA_PIC_REQUEST);

        }
    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {

        Bitmap image = (Bitmap) data.getExtras().get("data");
        Intent cam = new Intent(this, MainCam.class);
        cam.putExtra("flostic", image);
        startActivity(cam);

第二项活动

            Intent intent = getIntent();
            imageBitmap = (Bitmap) intent.getParcelableExtra("flostic");

1 个答案:

答案 0 :(得分:0)

在意图中添加MediaStore.EXTRA_OUTPUT,并在putExtra中指定路径以指定保存图片的路径,因为否则它只返回图片的快照而不是高分辨率图片。请参阅此doc

可以发送标准Intent操作,让相机应用程序捕获图像并将其返回。调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象。这对于只需要小图像的应用程序非常有用。如果存在EXTRA_OUTPUT,则完整尺寸的图片将被写入Uri的{​​{1}}值。