DELPHI 安卓APP扫码,最新的基于D12.1与ZXing的二维码和条码扫描页面,可以直接扫码以及选择图片扫码

原来使用华为的SDK,但是升级到D12.1后,不能正常使用了,现在把它改成Zxing的条码和二维码识别库。

主要识别过程:

procedure TScanForm.ParseBitmap;
var
  ReadResult: TReadResult;
  ScanResult: TScanResult;
begin
  ReadResult := nil;
  Camera.SampleBufferToBitmap(imgCamera.Bitmap, True);

  if not fScanInProgress and (MilliSecondsBetween(fLastScan, Now) >= SCAN_EACH_MS) then
  begin
    TTask.Run(procedure
      var
        LReducedBuffer: TBitmap;
      begin
        try
          try
            fLastScan := Now;
            fScanInProgress := True;
            LReducedBuffer := CropBitmap(imgCamera);
            try
              ReadResult := fScanManager.Scan(LReducedBuffer);
            finally
              LReducedBuffer.Free;
            end;

            TThread.Synchronize(nil, procedure
              begin
                if (ReadResult <> nil) then
                begin

                  ScanResult := TScanResult.Create;  //建立消息
                  ScanResult.Code := 100;
                  ScanResult.Value := ReadResult.Text;
                  TMessageManager.DefaultManager.SendMessage(nil, ScanResult);//发送消息

                  // comment the next block if you don't want/need the beep,
                  // or create a configuration and let the user to decide
                  fAudioM.PlaySound(0);

                  //close the form
                  Camera.Active := False;
                  Close;
                end;
              end);

          except
            on E: Exception do
            begin
              exit;
            end;
          end;
        finally
          ReadResult.Free;
          fScanInProgress := False;
        end;

      end);
  end;
end;

设置摄相头参数:

Camera.Kind := FMX.Media.TCameraKind.BackCamera;
Camera.FocusMode := FMX.Media.TFocusMode.ContinuousAutoFocus;
Camera.Active := True;

打开或关闭闪光灯:

if Camera.Active and Camera.HasTorch then
begin
  if Camera.TorchMode = TTorchMode.ModeOn then
  begin
    Camera.TorchMode := TTorchMode.ModeOff;
    imgLight.Opacity := 0.6;
  end else
  begin
    Camera.TorchMode := TTorchMode.ModeOn;
    imgLight.Opacity := 1;
  end;
end;

页面效果图:

文中代码地址:https://download.csdn.net/download/yifanbbs/89401888 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi是一种编程语言,而ZXing(Zebra Crossing)是一个开源的条码二维码处理库。要实现在Delphi中调用ZXing 3.3.3来实现仿微信的扫描二维码和条形码功能,首先需要集成ZXing库到Delphi项目中。 第一步是下载ZXing 3.3.3的源代码。可以在ZXing的GitHub页面上找到最新的版本。解压下载的压缩文件并将其中的源代码文件复制到Delphi项目的目录中。 接下来,在Delphi中创建一个新的Form(窗体)来放置扫描二维码的UI界面。可以使用Delphi自带的UI设计工具来创建界面,添加一个按钮,一个文本框以及用于图像显示的容器。 然后,在Delphi中添加ZXing的库文件。在Delphi的菜单栏中选择“项目”,然后点击“选项”菜单。在“环境选项”对话框中,选择Delphi”下的“编译器”选项,点击“搜索路径”并点击“添加”,浏览并选择ZXing库的源代码所在的文件夹。 接下来需要在Delphi代码中添加ZXing的功能代码。可以找到相应的代码示例或者教程来了解如何在Delphi中调用ZXing扫描功能。通常需要在按钮的点击事件中添加ZXing扫描方法,并将扫描结果显示在文本框中。 最后,运行Delphi项目并测试扫码功能。点击按钮,打开相机并进行扫描扫描结果将会显示在文本框中。 总的来说,要实现在Delphi中调用ZXing 3.3.3来实现仿微信的扫描二维码和条形码功能,主要步骤是集成ZXing库到Delphi项目中,创建相应的UI界面,在代码中添加ZXing的功能方法,并测试运行实现扫码功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值