当前位置:首页 > 科技 >

怎么删除二维码里的东西(如何删除二维码里的内容)

来源:原点资讯(www.yd166.com)时间:2023-04-23 15:09:27作者:YD166手机阅读>>

怎么删除二维码里的东西,如何删除二维码里的内容(1)

zxing是一款跨平台的基于Java实现的处理一维或二维条码的库。支持多种格式,一维条码支持UPC-A,UPC-E,EAN-8,Code 39,Code 93等格式,二维条码支持QR Code,Data Matrix,PDF 417,MaxiCode等格式。

注:上述的二维条码指的是较宽泛的二维条码,而不是QR Code表示的二维码。

前言

原本Lark直接集成了zxing实现扫一扫功能。由于Lark的特殊业务需求,因此并不需要支持到这么多格式,只需要支持QR Code,因此我们对zxing内部进行定制,使得zxing只支持QR Code。这样既可以减少zxing库的大小,也可以加快zxing处理一帧数据的速度。优化主要包含两方面:(1)扫描性能(2)交互体验。

扫描性能优化包括:

  • 去除zxing额外支持的格式。
  • 删除zxing冗余代码。
  • 将处理相机帧从串行改为并行。

交互体验优化包括:

  • 自动放大。
  • 双击放大。
  • 重力传感器聚焦。
  • 手势调整焦距。

去除zxing额外支持的格式

MultiFormatReader的decodeWithState( )是使用方的入口方法,内部调用了decodeInternal( ),输入是相机的一帧数据,如果抛了NotFoundException,则表示没找到二维码;如果返回了Result,则表示找到了二维码,并解析完成。代码如下:

怎么删除二维码里的东西,如何删除二维码里的内容(2)

其中,readers变量是一个数组,数组的大小表示支持的条码格式个数,zxing原本因为支持很多格式,因此这个数组长度比较长。当拿到相机的一帧数据后,需要去检测是否是所有支持格式的某一个格式,每一种格式的检测都需要花费一些时间,因此这个遍历对于Lark是不必要的。如果将zxing内部定制成只支持QR Code格式,那么就免去了额外的格式检测。

删除zxing冗余代码

我们主要从几方面删除冗余代码:

  • 删除zxing除了二维码之外的格式的相关代码,zxing对每种格式的相关代码都放在各自的目录中,因此我们只需要把这些格式对应的目录删除即可,比如aztec、maxicode等。
  • 删除二维码的encode相关代码,即"QRCode/encoder"目录。
  • 删除decode后文本的解析相关类(比如地址、通讯录、邮件等解析类),只保留URI、URL、Text。

通过以上方式,zxing文件数量从263个缩减到67个,库大小从1.8M缩减到451K,效果非常明显。

将处理相机帧从串行改为并行

原本Lark扫一扫的逻辑是串行的,如下图:

怎么删除二维码里的东西,如何删除二维码里的内容(3)

每次从onPreviewFrame()中获取一帧数据,然后调用zxing的decode解析二维码,如果成功,则返回;如果失败,则调用setOneShotPreviewCallback( )重新调用一次onPreviewFrame( )。

缺点是如果处理一帧数据时间很长,会阻碍下一帧的处理,比如上一帧是没有二维码的,而下一帧是有二维码的,如果上一帧处理时间较长,那么虽然用户对准了二维码,但是实际处理的还是上一帧,因此不太合理。

我们将串行处理改成并行处理,一旦从onPreviewFrame( )获取一帧数据,将decode任务丢进线程池,并立即调用setOneShotPreviewCallback( )获取下一帧数据。一旦某个任务检测到二维码,立即将isSuccess变量置为true,忽略其他任务。这样能够大大加快二维码检测的速度。

自动放大

当二维码很小很远时,自动放大能大大加快检测二维码的速度。QRCodeReader的decode( ) 是二维码检测的主方法,分为两步:(1)大致判断是否存在二维码;(2)解码。

怎么删除二维码里的东西,如何删除二维码里的内容(4)

首页 123下一页

栏目热文

白色二维码怎么消除(如何去除二维码白色部分)

白色二维码怎么消除(如何去除二维码白色部分)

小伙伴们在用中琅条码打印软件设计标签的时候有没有遇到需要把两个图片放到一块的情况,这个时候如何上面的图片带有背景色,那么...

2023-04-23 15:27:14查看全文 >>

如何快速清除二维码(扫完二维码怎么把它清除掉)

如何快速清除二维码(扫完二维码怎么把它清除掉)

基本使用插件安装cnpm install QRCodejs2 --save // 或者 npm install qrco...

2023-04-23 15:19:00查看全文 >>

如何去除二维码的图标(二维码有图案怎么去除)

如何去除二维码的图标(二维码有图案怎么去除)

不知道小伙伴们在使用手机的时候是否遇到过这样的困惑,需要整理桌面,一个一个的拖动到同一个分类,华为没有自一键带锁屏,把二...

2023-04-23 15:21:30查看全文 >>

怎么删除自己二维码(个人二维码怎么去掉)

怎么删除自己二维码(个人二维码怎么去掉)

怎么把二维码变成链接?有些时候咱们推广不方便直接发二维码,需要把二维码转换成链接,但很多人不会转换,今天缩链就说说怎么把...

2023-04-23 15:08:14查看全文 >>

用什么方法去掉二维码(如何清除网上的二维码)

用什么方法去掉二维码(如何清除网上的二维码)

不再满足于老旧小区墙壁、路边电线杆和公共厕所,如今,“牛皮癣”广告正奋力攻占新领地——街头的共享单车。扫到假的骑车“二维...

2023-04-23 15:45:07查看全文 >>

怎样去掉原有的二维码(二维码怎么去掉)

怎样去掉原有的二维码(二维码怎么去掉)

本期我们将通过给二维码换颜色,学习PS的三种简单的抠图方法。第一步打开PS,将我们的二维码在PS中打开。右下角ctrl ...

2023-04-23 15:15:05查看全文 >>

win10已经添加打印机wps识别不到

win10已经添加打印机wps识别不到

打印机已安装,但无法查看和使用,无法在控制面板的设备和打印机中找到。这可能是由相关服务问题引起的。检查系统服务。1. 在...

2023-04-23 15:10:40查看全文 >>

windows10找不到打印机(win10找不到打印机怎么办)

windows10找不到打印机(win10找不到打印机怎么办)

升级到了Win10系统之后需要重新设置一下打印机的,不过有很多用户对win10系统还不太熟悉,今天为大家分享win10系...

2023-04-23 15:55:24查看全文 >>

三步解决win10找不到打印机(win10能打印但是找不到打印机)

三步解决win10找不到打印机(win10能打印但是找不到打印机)

如果您的 Windows 10 计算机无法连接到打印机,您可以采取几个步骤来解决问题。 以下是一些建议:1.检查打印机连...

2023-04-23 15:17:08查看全文 >>

win10添加了打印机却找不到(win10在添加设备里找不到打印机)

win10添加了打印机却找不到(win10在添加设备里找不到打印机)

很多朋友改完Win10系统就找不到打印机设备,无法设置默认打印机,今天来解析这个问题!01进入设置界面通常,对于已经启动...

2023-04-23 15:43:03查看全文 >>

文档排行