【问题标题】:How do I tell zxing to use 4:3 (640x480) resolution instead of 16:9 (640x360)?如何告诉 zxing 使用 4:3 (640x480) 分辨率而不是 16:9 (640x360)?
【发布时间】:2016-03-24 13:13:08
【问题描述】:

我在我的 android 应用程序中使用 zxing。当它启动时,它进入 16:9 模式。我正在调试 10' 平板电脑。我很确定它以 16:9 加载,因为打开股票相机应用程序,我可以选择 16:9 分辨率和 4:3。当我设置 16:9 时,图像与我从运行 zxing 的应用程序中获得的图像完全匹配。我需要将分辨率设置为 4:3。而且我知道它是受支持的,因为它向我显示了库存相机应用程序中的选项。我用的是前置摄像头。我在棒棒糖里。我需要帮助。我试过这个:

Camera camera = Camera.open(1);
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureSize(640, 480);

但是当我后来尝试启动 zxing IntentIntegrator 时,它失败了,说它无法访问 id 为 1(正面)的相机。我已经使用新的 camera2 API 搜索了等效项,但没有成功。也许你知道该怎么做。 我正在从 android studio 中的 build.gradle 编译 zxing。所以我认为我可能无法编辑 zxing 来源。

这是我的代码:

Camera camera = Camera.open(1);
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureSize(640, 480);
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setCameraId(1);
integrator.initiateScan();

这是错误:

http://i.stack.imgur.com/TCJGx.png

【问题讨论】:

  • 你应该使用 parameter.getsupportedsize();然后你可以设置 Picturesize 。你明白吗?
  • 我已经使用了 getsupportedsizes() 并获得了支持的尺寸列表,其中有我需要的尺寸 (640x480)。这就是为什么我直接使用上面的代码然后我启动zxing。但它失败了。
  • 好像zxing无法打开相机,因为我之前已经打开过设置图片大小。
  • 请插入您的代码以帮助您。
  • 我已经插入了我的代码

标签: android camera resolution zxing


【解决方案1】:

IntentIntegrator 只是在您的设备上启动其他一些基于 zxing 的条码扫描器应用程序的便捷方式。它有一组非常有限的参数,大小不是其中之一。

正如您所怀疑的,您收到此错误是因为当您使用 IntentIntegrator 启动条形码扫描仪应用程序时尝试打开它时,您打开了相机。除非 IntentIntegrator 将相机实例对象中继到条形码扫描仪应用程序,否则您的方法将不起作用。设置大小然后关闭相机也不起作用,因为设置不会持久化。

如果您真的需要它来工作,您可能需要使用 zxing 库构建自己的扫描 Activity,然后您可以将预览大小设置为您想要的任何值。

【讨论】:

  • 非常感谢您的回答。您能否告诉我应该从哪里开始使用 zxing 构建自己的活动?而且,您知道“setScanningRectangle”是否有帮助吗?如果我没有理解错,它会在整个图像上设置小扫描矩形的大小。我对吗?再次感谢。
  • 抱歉,对 zxing 不够熟悉,无法提供进一步的建议,但该项目似乎有相当多的文档,希望能对您有所帮助。我不认为 setScanningRectangle 会调整预览大小,它只是设置扫描仪将在其中查找条形码的区域。
  • 再次感谢。我会试试的。
猜你喜欢
  • 2021-02-15
  • 1970-01-01
  • 2017-08-01
  • 2012-05-08
  • 1970-01-01
  • 2019-10-04
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多