Android 使用原生相机Camera在预览界面进行识别二维码或者图片处理
创始人
2024-09-26 14:50:29
0

1 项目需求

最近项目中有个需求:使用原生相机在预览界面进行识别二维码和图片处理。其实这个需求不是很难,难在对预览画面的处理过程。

自己针对这个需求写了一个工具类,便于后续进行复盘,同时也分享给有类似需求的伙伴们。

2 遇到的问题

2.1 二维码识别成功率低

使用了第三方库,二维码成功率应该没有90%。我们客户要求比较高,二维码识别成功率要求几乎100%。后面会给出关键核心代码。现在先给出成功率不高的代码。

这里使用的第三方库是:
implementation ‘com.google.zxing:core:3.4.1’
implementation ‘com.journeyapps:zxing-android-embedded:3.6.0’

 ... 省略工具类其他部分代码,只看二维码识别部分代码  private final Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {             @Override         public void onPreviewFrame(byte[] data, Camera camera) {                 Camera.Parameters parameters = camera.getParameters();             Camera.Size size = parameters.getPreviewSize(); 			 			// 二维码识别             decodeQRCode(data, size.width, size.height);         }     };  /**  二维码识别  */ private void decodeQRCode(byte[] data, int width, int height) {             MultiFormatReader reader = new MultiFormatReader();         try {                 PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(data, width, height,                     0, 0, width, height, false             );              Result result = reader.decode(new BinaryBitmap(new HybridBinarizer(source)));             if (result != null){                     Log.e(TAG, "扫码结果 = " + result.getText());             }              if (result != null && result.getText().length() > 0) {                     if (callback != null) {                         callback.onQRCodeScanned(true, result.getText());                 }             } else {                     if (callback != null) {                         callback.onQRCodeScanned(false, "");                 }             }         } catch (Exception e) {                 Log.e(TAG, "扫码异常 = " + e.getMessage());             if (callback != null) {                     callback.onQRCodeScanned(false, "");             }         }     } 

2.2 相机预览没物体时偶尔出现画面模糊

如下图。偶尔出现这样模糊画面。
在这里插入图片描述

3 相机工具类核心代码

实现主要流程:

1 打开相机
2 Camera 相关设置
3 预览时数据处理
4 关闭相机
/**  * @author linvisf  *   * description: 相机工具类  * //分辨率 1920 * 1088  1920 * 1080  1440 * 1080  1280 * 720  720 * 480  640 * 480  352 * 288  320 * 240  */ 

相关内容

热门资讯

4分钟辅助挂!川麻圈辅助软件哪... 4分钟辅助挂!川麻圈辅助软件哪里买,心悦麻将心悦踢坑果然真的有挂,可靠技巧(有挂详情)1)川麻圈辅助...
六分钟细节!悠闲游戏辅助,财神... 六分钟细节!悠闲游戏辅助,财神十三张辅助软件免费(原来一直是有挂)1、操作简单,无需注册,只需要使用...
热点推荐!易达小市黄山麻将有挂... 热点推荐!易达小市黄山麻将有挂吗,中至卧龙有外挂吗,手机雀神麻将隐藏功能(详细教程)1、下载好易达小...
6分钟辅助挂!灵飞承德麻将有挂... 6分钟辅助挂!灵飞承德麻将有挂吗,皇豪互娱的确真的有挂,安装教程(有挂细节);1、6分钟辅助挂!灵飞...
三分钟技巧!易棋游戏有挂吗,堆... 三分钟技巧!易棋游戏有挂吗,堆金城双金麻将有挂吗(其实总是有挂)堆金城双金麻将有挂吗是一种具有地方特...
终于懂了!!wepoke模拟器... 终于懂了!!wepoke模拟器,兴安盟博乐麻将有挂吗,攻略教程(有挂技巧);兴安盟博乐麻将有挂吗辅助...
推荐一款!微扑克辅助工具可以下... 推荐一款!微扑克辅助工具可以下载,开心泉州麻将外辅工具,黑科技教程(有挂详情)1、进入到开心泉州麻将...
必看攻略!全民雀神透视辅助,八... 必看攻略!全民雀神透视辅助,八一字牌辅助软件,雀神广东麻将系统调好(详细教程)1、起透看视 全民雀神...
6分钟辅助挂!天府麻舍怎么开挂... 6分钟辅助挂!天府麻舍怎么开挂,中至赣州就是真的有挂,介绍教程(有挂黑科技)1、超多福利:超高返利,...
3分钟插件!潮汕汇app辅助,... 3分钟插件!潮汕汇app辅助,大众互娱怎么开挂(原来真的有挂)1、全新机制【大众互娱怎么开挂软件透明...