如何在android中使用相机拍摄自定义图像尺寸?

如何在android中使用相机拍摄自定义图像尺寸?,android,image,capture,android-camera,Android,Image,Capture,Android Camera,如何在android中捕获方形图像? 我想在安卓系统中通过intent调用Camera拍摄一幅方形图像(如300x300像素),我如何才能做到这一点?编辑: 自API级别21以来,这已被弃用 使用Camera.Size嵌套类 从android参考中: 课程概述 Camera类用于设置图像捕获设置、开始/停止预览、捕捉图片以及检索用于视频编码的帧。此类是摄影机服务的客户端,该服务管理实际的摄影机硬件 确保相机支持该尺寸(很可能不会)。如果没有,请以最接近的分辨率拍摄照片,并对其进行裁剪或调整大

如何在android中捕获方形图像? 我想在安卓系统中通过intent调用Camera拍摄一幅方形图像(如300x300像素),我如何才能做到这一点?

编辑: 自API级别21以来,这已被弃用

使用Camera.Size嵌套类

从android参考中:

课程概述

Camera类用于设置图像捕获设置、开始/停止预览、捕捉图片以及检索用于视频编码的帧。此类是摄影机服务的客户端,该服务管理实际的摄影机硬件

确保相机支持该尺寸(很可能不会)。如果没有,请以最接近的分辨率拍摄照片,并对其进行裁剪或调整大小

Camera myCamera = Camera.open(0);
List<Camera.Size> sizes = myCamera.getPArameters().getSupportedPictureSizes();
Camera myCamera=Camera.open(0);
列表大小=myCamera.getPArameters().getSupportedPictureSizes();
要了解摄像头的意图,请检查SO中已存在的问题:


为什么没有人提到这样的事情

Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, xStart, yStart, 300, 300);

其中sourceBitmap是从相机和
xStart
开始的原始捕获,以及
yStart
开始裁剪的位置。结果应该在左上角有
xStart
yStart

您需要给我们提供更多的上下文。我的上下文是:我想在android中捕获一个宽度=300px,高度=300px的图像。我该怎么做呢?谢谢Aleadam,但我需要拍一张正方形的照片。没有任何解决方案,不是吗?@Nguyen:“如果没有,请以最接近的分辨率拍摄一张照片,并对其进行裁剪或调整大小。”我相信这是你唯一的选择(无论如何也不难实现)。那么,我如何在安卓2.x中裁剪图像呢?我没有办法解决这个问题。你有任何示例代码吗?请检查这里的答案:(特别是
com.android.camera.action.CROP
Intent)活动com.android.camera.action.CROP在android 2.x中不存在,Aleadam。如果捕获的图像对于位图来说不是太大,这将是一个很好的选择。我有一个捕捉图片的应用程序,但如果我想这样调整它的大小,我会得到一个outOfMemoryException,因为捕捉到的图片太大了。@OpiateFuch这表明设备无法处理自己的图像捕捉。这没什么意义。你试过了吗?@JaroslavZáruba这并不意味着这一点,这取决于特定设备上发生outOfMemoryException的几个因素。源位图应该首先缩小二分之一。@JaroslavZáruba这并不意味着这一点,它取决于在特定设备上发生outOfMemoryException的几个因素。应首先使用BitmapFactory将源位图缩小二分之一。选项,inScaleparameter@Ewoks如果他没有其他东西吃相机,那么他应该能够加载完整大小的位图。