如何获得高分辨率图像
Posted
技术标签:
【中文标题】如何获得高分辨率图像【英文标题】:How to get a high resolution image 【发布时间】:2017-12-21 20:06:32 【问题描述】:我的问题是,当我从相机拍照并传递给另一个活动时。图像不是高分辨率。我怎样才能使我的图像具有高分辨率。我的代码如下
主要活动
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");
【问题讨论】:
您没有使用EXTRA_OUTPUT
,文档说:“如果 EXTRA_OUTPUT 不存在,则在额外字段中将小尺寸图像作为 Bitmap 对象返回”
但实际上你已经问过同样的问题 3 次了:每次你被告知要使用EXTRA_OUTPUT
,那么你想一次又一次地重复这个问题多少次?
是的。但只有 Bitmap 对象可以在我的应用程序中运行
我不明白你的意思
【参考方案1】:
在意图中添加MediaStore.EXTRA_OUTPUT
,并在putExtra
中给出路径以指定保存图片的路径,否则它只返回一张图片而不是高分辨率图片。请参考此doc。
可以发送标准Intent
操作以使相机应用程序捕获图像并将其返回。调用者可能会传递一个额外的EXTRA_OUTPUT
来控制此图像的写入位置。如果 EXTRA_OUTPUT 不存在,则在额外字段中将小尺寸图像作为位图对象返回。这对于只需要小图像的应用程序很有用。如果存在EXTRA_OUTPUT
,则将全尺寸图像写入Uri
的EXTRA_OUTPUT
值。
【讨论】:
以上是关于如何获得高分辨率图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Camera.takePicture() 拍摄高分辨率图像?