【问题标题】:CWAC2 capture only image visible in PreviewCWAC2 仅捕获预览中可见的图像
【发布时间】:2016-05-18 18:11:34
【问题描述】:

所以,我已经下载了 CWAC2 库并对其进行了一些修改,以便我可以在相机预览周围显示自定义布局。

问题是,当我在 Activity(左侧)的 FrameLayout 内以预览模式设置 CameraFragment 时,我看到了一件事。在我拍照(从 CameraFragment 调用 take 适当的方法)并在 ImageView 中显示图像后,我看到了“更大的图片”(右侧)。

是否有限制相机仅捕捉它在预览中显示的内容?我猜我需要设置....相机的纵横比?!

不,这不是左侧被放大的问题。

【问题讨论】:

  • “我已经下载了 CWAC2 库并对其进行了修改,因此我可以在相机预览周围显示自定义布局”——我建议您停止使用该库并直接使用相机 API .基本上,如果你必须“破解图书馆”,你不应该使用图书馆。该库是ACTION_IMAGE_CAPTURE 的替代品,就是这样
  • “有没有限制相机只捕捉它在预览中显示的内容?” -- 不要求相机图片与相机预览的内容完全匹配。欢迎硬件为所欲为。未经破解的 CWAC-Cam2 库裁剪预览,以便能够用裁剪的预览填充屏幕。由于预览纵横比与图片纵横比无关,并且由于屏幕纵横比与图片纵横比无关,因此图片可能显示的内容比用户在预览中可见的要多。

标签: android commonsware-cwac


【解决方案1】:

据我了解,您需要更改 CameraView 发送到您的 Frame Layout 的内容,因此它显示的内容与相机获取的内容相同(您的正确图片)。

在 CameraView.java 中的 adjustAspectRatio() 中,尝试调整视图的缩放。

  txform.setRectToRect(rectView, rectPreview, Matrix.ScaleToFit.START); // or Matrix.ScaleToFit.CENTER

  float scale=Math.max((float)yourFrameLayoutHeight/rectPreview.height(), (float)yourFrameLayoutWidth/rectPreview.width());
  txform.postScale(scale, scale, viewCenterX, viewCenterY);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多