首页 > 其他分享 >SwiftUI 调用相机扫码

SwiftUI 调用相机扫码

时间:2024-10-06 19:47:11浏览次数:11  
标签:扫码 BarcodeScannerView UIViewControllerRepresentable parent captureSession 相机 Swi

在 SwiftUI 中调用相机进行扫码(二维码、条形码等),可以通过使用 AVCaptureSession 和 AVCaptureMetadataOutput 实现。这可以通过 UIViewControllerRepresentable 来包装 AVCaptureSession,然后与 SwiftUI 结合。详见代码示例。

调用流程

  1. 创建一个使用 AVCaptureSession 来处理相机输入和元数据输出的视图。
  2. 使用 UIViewControllerRepresentable 包装该视图并将其集成到 SwiftUI 中。
  3. 处理扫描到的条形码或二维码,并将其结果传递回 SwiftUI。

组件代码

struct BarcodeScannerView: UIViewControllerRepresentable {
    class Coordinator: NSObject, AVCaptureMetadataOutputObjectsDelegate {
        var parent: BarcodeScannerView
        var captureSession: AVCaptureSession?

        init(parent: BarcodeScannerView, captureSession: AVCaptureSession?) {
            self.parent = parent
            self.captureSession = captureSession
        }

        func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
            if le

标签:扫码,BarcodeScannerView,UIViewControllerRepresentable,parent,captureSession,相机,Swi
From: https://blog.csdn.net/weixin_41863236/article/details/142730806

相关文章

  • 基于net在线照相机销售系统的设计与实现(源码+lw+部署文档+讲解等)
    前言......
  • 【嵌入式裸机开发】基于stm32的照相机(OV7670摄像头、STM32、TFTLCD)
    基于STM32的照相机准备工作最终效果一、下位机1、主函数2、OV7670初始化二、上位机1、控制拍照2、接收图片数据准备工作一、硬件及片上资源:1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑,或者其他方法)上传图片数据至上位机2,串口2(波特率:115200,PA2/PA3......
  • SwiftUI简明概念(2):renderingMode VS symbolRenderingMode
    一、什么是renderingModeImage的renderingMode可以设置两种值,.original表示渲染图片原来的像素,.template则表示用前景色去渲染图片像素非透明部分,图片只用作形状或者模版。二、什么是symbolRenderingModeImage的symbolRenderingMode可以设置四种值。我们知道SFsymbol可能是......
  • 一次实践:给自己的手机摄像头进行相机标定
    目录1.问题引入2.准备工作2.1标定场2.2相机拍摄3.基本原理3.1成像原理3.2畸变校正4.标定解算4.1代码实现4.2详细解析4.2.1解算实现4.2.2提取点位4.3解算结果5.问题补充1.问题引入不得不说,现在的计算机视觉技术已经发展到足够成熟的阶段了,还记得笔者刚工作的时候,......
  • SwiftUI简明概念(1):ForegroundColor VS ForegroundStyle
    一、何谓前景色在SwiftUI体系内,一个View可能包含一个或多个图层,那么最前面的一个图层就是ForegroundColor或ForegroundStyle作用的目标图层。当然这个图层可能不会响应前景色的要求:如上图所示,Rectangle作为shape图层,能响应前景色要求,导致图层变成前景色。Button的作用图层是......
  • RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用
    以下是英特尔RealSense、StereolabsZED和奥比中光Astra几款相机的详细对比,包括参数、性能以及二次开发等支持,附带代码示例。详细信息对比和二次开发示例1.英特尔RealSense(例如D435/D455)深度技术:立体视觉+红外投影分辨率:D435:1280x720@30fpsD455:1920x......
  • Cinemachine相机控制插件(转载)
    Cinemachine插件在Unity中的实现原理主要依赖于其虚拟相机(VirtualCamera)系统和一系列算法来控制Unity中的真实相机。以下是Cinemachine插件实现原理的详细解析:一、核心组件VirtualCamera(虚拟相机):虚拟相机是Cinemachine的核心组件,它不直接渲染画面,而是存储了一系列关于相机......
  • uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款
    uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款等功能,界面漂亮颜值高,视频商城小工具等,蚂蚁森林种树养鸡农场偷菜样样齐用于视频,商城,直播,聊天等sumer-alipay介绍uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝......
  • 在虚幻引擎中实现Camera Shake 相机抖动/震屏效果
    在虚幻引擎游戏中创建相机抖动有时能让画面更加高级,比如遇到大型的Boss,出现一些炫酷的特效加一些短而快的CameraShake能达到很好的效果,为玩家提供沉浸感创建CameraShake调整Shake参数到第三人称或第一人称蓝图调用CameraShakeRadius值越大晃动越强......
  • vue2实现监听usb接口的扫码器,获取扫码数据。
    原理扫码枪本质就是一个快速输入+回车(注意:扫码输入法要设置英文,不然会乱码)全局安装importscannerfrom'./install';Vue.use(scanner);使用exportdefault{data(){return{items:[],//扫码结果isStart:false//是否开启扫码}......