【问题标题】:setParameters failed Android Camera - Resolutions correctsetParameters 失败的 Android 相机 - 分辨率正确
【发布时间】:2016-01-24 21:04:51
【问题描述】:

这是我的相机设置:

param = camera.getParameters();              
param.setPictureFormat(ImageFormat.YV12); // Removing this line fixes the error
param.setPreviewSize(800, 480)   
param.setPictureSize(800, 480);
camera.setDisplayOrientation(90);
camera.setParameters(param);

设置 ImageFormat 会导致 setParameters failed 错误。所以它显然不是问题所在。我还检查了设备上支持的图片/预览分辨率,所以肯定没有问题。

这种图像格式应该在所有设备上都兼容......这是怎么回事?

【问题讨论】:

    标签: android image camera image-formats


    【解决方案1】:

    这种图像格式应该在所有设备上都兼容

    仅用于预览;您正在尝试将其用于图片。引用the documentation:

    对于较旧的相机 API,从 API 级别 12 起,相机预览图像保证支持此格式

    The documentation for setPictureFormat() 表示您可以使用的三种格式是ImageFormat.NV21ImageFormat.RGB_565ImageFormat.JPEG

    【讨论】:

    • 我在使用setPictureFormat(ImageFormat.NV21) 时遇到同样的错误。一定有其他问题。我还需要 YUV,所以我可以提取 RGB 值,如下所示:stackoverflow.com/a/2164906/1449637
    • @GregPeckory:我只用过JPEG,所以我不知道NV21有多受欢迎。此外,无论如何,您应该对照getSupportedPictureFormats() 检查它。 “我还需要 YUV,所以我可以提取 RGB 值”——好吧,RGB_565 似乎有 RGB 值。您引用的答案是使用预览帧,而不是图片。如果您坚持使用 YUV,则需要处理预览帧,而不是图片。
    • 酷,感谢您的帮助!所以基本上,如果我坚持画框并使用 RGB_565 我应该没问题?
    • @GregPeckory:仅适用于支持RGB_565 的设备。这将是一些,但不是全部。为setPictureFormat() 记录的值是可能 值,并非保证。这就是getSupportedPictureFormats() 的用途。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多