zxing 扫描闪退

zxing 扫描框调整放大之后,部分机型会出现扫描后闪退现象,原因是在 MipcaActivityCapture的handleDecode方法中向bundle中添加的bitmap过大,

代码是bundle.putParcelable("bitmap", barcode);

handleDecode方法是用来处理扫描结果的,例如向调用MipcaActivityCapture的Activity回传扫描结果和扫描得到的bitmap。但bitmap不能过大超出内存限制就会奔溃。

解决的办法:如果不需要显示扫描得到的图片,我们可以不将bitmap导入bundle,直接将bundle.putParcelable("bitmap", barcode);注释掉。

 如果一定要获得bitmap,则需要在导入前将bitmap压缩

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi 11.2 是一种集成开发环境(IDE),可以用于开发跨平台的应用程序。而 Zxing 是一个开源的条码扫描库,可以用于识别不同类型的条码。 在 Delphi 11.2 中使用 Zxing 进行条码扫描,首先需要下载并导入 Zxing 的相关库文件。可以从 Zxing 的官方网站或其他开源社区获取最新版本的库文件。 接下来,在 Delphi 11.2 的项目中引用 Zxing 相关的单元,以及配置项目的编译选项和运行时权限。通过初始化并配置 Zxing扫描器,可以设置扫描的类型(如二维码或一维码)和其他参数。可以创建一个扫描界面,在界面上显示实时的摄像头画面,并处理扫描结果。 在条码扫描过程中,可以通过调用 Zxing 的相应函数来启动和停止扫描。当扫描成功时,可以获取到条码的内容,并进行相应的处理,如显示在界面上或进行后续的业务逻辑操作。 需要注意的是,使用 Delphi 11.2 zxing 扫描条码时,需要确保使用的设备具备摄像头功能,并授权应用程序访问摄像头。同时,也需要根据具体的业务需求,在扫描结果的处理中考虑异常情况,并进行错误处理。 总结起来,Delphi 11.2 zxing 扫描条码包括下载导入库文件、配置编译选项和运行时权限、初始化配置扫描器、创建扫描界面、启动停止扫描、处理扫描结果等步骤。 ### 回答2: Delphi是一种使用Object Pascal编程语言的集成开发环境(IDE),用于开发软件应用程序。ZXing是一种用于解码和生成各种不同类型的二维码(如QR码)和条形码的开源库。 在Delphi 11.2中使用ZXing库进行条码扫描,需要先在Delphi项目中导入ZXing库。可以通过在Delphi中的“项目”菜单中选择“引入”选项来导入库文件。 一旦导入了ZXing库,可以在Delphi中创建一个新的窗体或者添加一个按钮来使用ZXing实现条码扫描功能。可以使用以下代码来调用ZXing库的扫描方法: ```pascal uses ZXing.BarcodeFormat, ZXing.ReadResult, ZXing.ScanManager; ... procedure TForm1.Button1Click(Sender: TObject); var BarcodeFormat: TBarcodeFormat; ScanManager: TScanManager; ReadResult: TReadResult; begin BarcodeFormat := TBarcodeFormat.Auto; // 设置扫描的条码格式 ScanManager := TScanManager.Create(BarcodeFormat); ReadResult := ScanManager.Scan(Imaging.BitmapFromBitmapFile('barcodeImage.jpg')); // 扫描条码图像 if ReadResult <> nil then ShowMessage('扫描结果:' + ReadResult.Text) else ShowMessage('未找到条码'); ScanManager.Free; end; ``` 以上代码首先创建一个TBarcodeFormat对象,用于设置扫描的条码格式。然后创建一个TScanManager对象,并传入设置的条码格式。接下来,通过调用Scan方法并传入要扫描的条码图像,可以获取到读取结果。如果读取结果不为空,则显示扫描结果的文本内容,否则显示未找到条码的消息。 需要注意的是,在使用ZXing库进行条码扫描之前,需要先安装并配置ZXing相关的库文件和依赖项。 以上就是使用Delphi 11.2和ZXing库实现条码扫描的简单示例。希望对您有所帮助! ### 回答3: Delphi 11.2是一种集成开发环境(IDE),用于编写和开发应用程序。ZXing是一个开源的条码扫描库,可用于从图像中解码和识别各种类型的条码。 要在Delphi 11.2中使用ZXing进行条码扫描,需要遵循以下步骤: 1. 首先,确保已安装并配置好Delphi 11.2开发环境。 2. 下载并添加ZXing库到您的Delphi项目中。可以从ZXing的官方网站或GitHub上获取最新的库文件。 3. 在您的Delphi项目中,创建一个新的扫描条码的功能。您可以为此添加一个按钮或其他触发器。 4. 在您的扫描功能中,导入ZXing库的相关单元。这些单元通常包括zxing.read.module.pas、zxing.barcodeformat.pas和zxing.luminance.source.pas等。 5. 在扫描功能中,创建一个用于初始化和配置扫描器的实例。您可以使用TBarcodeScanManager类来实现这一点。 6. 配置扫描器的属性,例如设置扫描类型(如一维码、二维码等)和图像捕获设置(如分辨率、闪光灯等)。 7. 启动扫描器,并设置回调函数以获取扫描结果。您可以使用BarcodeScanMatrixResultHandler和BarcodeScanResultHandler等回调函数。 8. 在扫描器的回调函数中,您可以处理和解析扫描结果。您可以使用Zxing库提供的BarcodeFormat类和Result类来获取条码的内容和类型。 9. 最后,在扫描完成后,记得释放和销毁扫描器的实例。 以上是使用Delphi 11.2和ZXing扫描条码的基本流程。具体的实现细节可能会根据您的项目需求和设计而有所差异。您可以参考ZXing的文档和Delphi的相关资源来获取更详细的指导和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值