码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • php中使用Imagick转换PDF第一页为PNG图片并且识别出二维码


    前言:关于php中如何安转Imagick可见相关教程,在识别二维码用到了这个扩展:

    khanamiryan/php-qrcode-detector-decoder

    需要注意的是目前该扩展已经更新到了2.0.2,默认使用composer安转不指定版本会安装最新版本的扩展,这时需要注意的是php的版本:

    PHP >= 8.1
    GD Library

    不然直接使用会出现以下错误:

    PHP Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in https://github.com/khanamiryan/php-qrcode-detector-decoder/blob/1.0.6/lib/QrReader.php#L16
    
    • 1

    经过在实际项目中测试,当使用php版本为7.4.3时需要使用对应的扩展版本为khanamiryan/qrcode-detector-decoder: 1.0.5.2,以下为在项目中安装使用方法。
    以当前使用的laravel8项目为例:
    安装指定版本:

    composer require khanamiryan/qrcode-detector-decoder:1.0.5.2
    
    • 1

    实际使用:

        //转换PDF为PNG图片
        public function transformPdfToPng($pdf_path)
        {
            $page = 0; //转换PDF第一页
            //PDF转换成图片
            $imagick = new \Imagick();
            //设置图片分辨率
            $imagick->setResolution(160, 160); //设置为160,增加二维码识别准确率
            //该函数接受单个参数$quality,该参数保存一个表示图像压缩质量的整数值
            $imagick->setCompressionQuality(100);
            $imagick->readImage($pdf_path . "[" . $page . "]"); //设置读取pdf的第一页
            $png_path = storage_path("app/public/temp").time()."png"; //生成读片地址
            $imagick->writeImage($png_path);
            //返回转换后的PNG图片地址
            return $png_path;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    	use Zxing\QrReader;
    
        //识别二维码
        /**
        * $png_path 为二维码的绝对路径
        *
        **/
        public function identifyQRcode($png_path)
        {
            $qrCode = new QrReader($png_path);
            return $qrCode->text();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    跨域问题WebMvcConfigurer
    自制OS3-1到4-10==保护模式(GDT、选择子、寄存器)、多任务由来(LDT)、内核态和用户态ring0和ring3、特权级切换(TSS-CPL-DPL-RPL-门)、时钟中断、保护模式中断编程
    Shopee买家通系统怎么用的?
    Excel VBA教程之如何在功能区中显示 Excel 开发人员选项卡,启用vba(教程含源码)
    (数据科学学习手札158)基于martin为在线地图快速构建精灵图服务
    CSAPP Data Lab
    数据库全量SQL分析与审计系统性能优化之旅
    如何构建 Protocol Buffers(protobuf)并解决常见问题
    十天学前端之JS篇(五)
    JDK下载和配置环境变量
  • 原文地址:https://blog.csdn.net/yj222333/article/details/133740517
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号