java - 扫描二维码并使用 p:photoCam 对其进行解码
问题描述
我需要在相机捕获时捕获和读取 QR 码,所有这些都在 JSF 应用程序中。
我已经阅读了照片中的二维码,但现在我必须让它“活着”。
有人有什么建议吗?
我正在尝试使用 PrimeFaces 的 p:photoCam。
方法是这样的,使用Zxing读取二维码:
/**
*
* @param filePath
* @param charset
* @param hintMap
*
* @return Qr Code value
*
* @throws FileNotFoundException
* @throws IOException
* @throws NotFoundException
*/
public static String readQRCode(String filePath, String charset, Map hintMap)
throws FileNotFoundException, IOException, NotFoundException {
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
new BufferedImageLuminanceSource(
ImageIO.read(new FileInputStream(filePath)))));
Result qrCodeResult = new MultiFormatReader().decode(binaryBitmap);
return qrCodeResult.getText();
}
}
解决方案
PrimeFaces Extensions 10 将包含一个pe:codeScanner
组件,用于从设备摄像头扫描条码和 QR 码。
<pe:codeScanner width="600"
height="400">
<p:ajax event="codeScanned"
listener="#{codeScannerController.onCodeScanned}"/>
</pe:codeScanner>
public void onCodeScanned(final SelectEvent<Code> event) {
final Code code = event.getObject();
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO,
String.format("Scanned: %s (%s)", code.getValue(), code.getFormat()),
null));
}
推荐阅读
- python - 基于同一数据框的另一列将缩写应用于数据框的列
- flutter - 使用颤振从圆心查找点的角度
- perl - 如何将 Mojo::Pg db 处理程序传递给控制器?(欢快的)
- python - 无法使用 pdb 调试 Django
- jestjs - 使用实体适配器的 JEST 中带有参数的 NgRx 选择器
- python - 如何在 Mac 上自定义 tkinter 菜单栏?
- python - 如何从 JSON 输出数据?
- javascript - React Native 渲染不一致?
- java - 方法局部内部类中的合成字段如何链接到方法局部变量的值?
- visual-studio-code - 在 vscode 中启用“将命令作为登录 shell 运行”