Android相机SurfaceView。如何更改图片分辨率?

3

我正在尝试在使用SurfaceView时更改相机的分辨率。我正在使用以下实现:url。我的相机具有2592 x 1944像素的分辨率,但是当我从相机获取byte [],然后将其转换为位图时,位图的分辨率为2048 x 1536。是否有一种方法可以更改这个问题?

1个回答

2
你需要更改相机参数;在这种情况下,可以使用Camera.Parameters.setPictureSize()

基本工作流程如下:

Camera.Parameters cp = mCamera.getParameters(); // get the current params
cp.set...(); // change something
mCamera.setParameters(cp); // write the params back

mCamera是在此情况下使用的相机对象。
这也在Camera 类文档中的第2和第3步中有所说明。

确保您通过此函数设置的每个分辨率都得到支持。您可以通过 Camera.Parameters.getSupportedPictureSizes()获取设备支持的分辨率列表。


好的,我选择了一个图片大小(Class Size),并使用Camera.Parameters.setPictureSize()设置在相机上,但是在拍照后,我收到了一个字节数组,并将此大小设置为位图选项outWidth和outHeight。还有其他方法吗? - Ricardo Cunha
你收到了一个字节数组,是的。但是outWidth是什么意思?这个字节数组是一个压缩的JPEG格式。如果你想要一个位图,你必须解压它(就像你可能已经做过的那样)。但是然后你会自动得到结果大小,你不需要设置任何特定的尺寸。你能详细说明一下吗? - user658042
抱歉,我犯了一个错误,你的步骤完美地起作用了。谢谢你的帮助。 - Ricardo Cunha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接