gpt4 book ai didi

android - 自定义相机安卓预览图与展示图不同

转载 作者:行者123 更新时间:2023-11-29 18:09:51 29 4
gpt4 key购买 nike

我正在开发一个使用手机摄像头的 Android 应用程序,并且我使用的是自定义代码。

问题是预览中显示的图像不正确(图像纵横比不正确)。

如果我使用下面的代码:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
Camera.Size selected = sizes.get(0);
params.setPreviewSize(selected.width,selected.height);
mCamera.setParameters(params);
mCamera.startPreview();

预览图像还可以(我认为图像顶部和底部的一小部分未显示)。

然后问题是调用 takePicture 方法后显示的捕获图像没有正确显示(图像宽高比不正确,图像似乎被压缩到 View 中),即使我将图片保存到文件图像似乎没问题。

我想知道在这两种情况下是否可以正确显示图像。有什么建议吗?

最佳答案

解决方案很简单,但我不知道我必须手动设置正确的宽高比(这不是一个自动过程,我想是的,而且这一步在大多数情况下都没有解释的)。最后我是这样解决的:

  1. 使用 params.getSupportedPreviewSizes()params.getSuppertedPictureSize() 获取支持的尺寸。

  2. 根据 surfaceChanged 中传入的测量值 widthheight 计算最佳纵横比(宽度/高度) (SurfaceHolder holder, int format, int width, int height)

  3. 在调用 startPreview() 方法之前,分别使用 setPreviewSizesetPictureSize 设置最佳预览大小和图片大小。

关于android - 自定义相机安卓预览图与展示图不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11350085/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com