ThinkPHP5使用phpqrcode生成二维码

news2024/11/17 17:46:09

生成指定跳转地址二维码图片:

首先将下载好的phpqrcode.php文件放到指定目录内(我这里用的放在public/phpqrcode目录下),准备调用
之后控制器中调用

    public function qrcode(){
        require_once "./phpqrcode/phpqrcode.php";	//引入类库文件

        $value = "http://www.baidu.com";	//扫码跳转的地址,二维码内容
      	
        $errorCorrectionLevel = 'L';  		//容错级别
        $matrixPointSize = 5;      			//生成图片大小
        //生成二维码图片
        // 判断是否有这个文件夹  没有的话就创建一个
        if(!is_dir("yyzs_qrcode")){
            // 创建文件夹
            mkdir("yyzs_qrcode");
        }
        //设置二维码文件名
        $filename = 'yyzs_qrcode/'.time().rand(10000,9999999).'.png';
        //生成二维码
        \QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
        //转换成base64数据
        $image_data = chunk_split(base64_encode(fread(fopen($filename, 'r'), filesize($filename))));
        //获取当前域名

        $domain = request()->domain();
        $url = $domain.'/'.$filename;

        print_r($url);	//输出生成的二维码图片地址
    }

生成结果如下
在这里插入图片描述
扫码接入百度首页

二:很多时候需要将相关二维码放置在一张背景图上,那么该如何操作呢?

    /**
     * 在背景图上生成二维码
     * $bg_img    背景图地址
     * $url       二维码内容url
     * $x   二维码在背景图片上位置的左边距,单位:px (例:436)
     * $y   二维码在背景图片上位置的上边距,单位:px (例:1009)
     * $qrcode_size  二维码(正方形)的尺寸,单位:px (例:238)
     * $white_edge   二维码白边大小
     * $echo_path   生成的二维码海报图片存放路径
     **/
    public function getActivityImg(){
        $bg_img='https://ptpack.iptzx.com/static/yyszs/13901743757.jpg';
        $x=3000;
        $y=720;
        $qrcode_size=256;
        $white_edge=0;

        include_once("./phpqrcode/phpqrcode.php");      //引入类库文件
        $errorCorrectionLevel = QR_ECLEVEL_L;           //容错级别
        $matrixPointSize = 2;                           //生成二维码图片大小
        $qrcode = "qrcod.png";							//用来存放二维码的变量,不是实际图片

        $value= "http://www.baidu.com";	//扫码跳转的地址,二维码内容

        $echo_path='yyzs_qrcode/'.time().rand(10000,9999999).'.png';
        //生成二维码图片
        //参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小
        \QRcode::png($url, $qrcode, $errorCorrectionLevel, $matrixPointSize, $white_edge);	//我这个白边大小是0,因为加上白边控制不了大小,不能完美契合背景图(白边可以让设计搞^.^)

        //合并背景图和二维码
        $background = imagecreatefromstring(file_get_contents($bg_img));	//资源
        $qrcode_res = imagecreatefromstring(file_get_contents($qrcode));	//资源
        list($src_w, $src_h) = getimagesize($qrcode);
        //参数内容:目标图象连接资源,源图象连接资源,目标X坐标点,目标Y坐标点,源的X坐标点,源的Y坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度(参数有疑问的话到:https://www.php.net/manual/zh/function.imagecopyresampled.php 去看,其他博客里瞎写)
        imagecopyresampled($background, $qrcode_res, $x, $y, 0, 0, $qrcode_size, $qrcode_size, $src_w, $src_h);

        //输出到本地文件夹,返回生成图片的路径
        if(!is_dir(dirname($echo_path))){
            mkdir(dirname($echo_path), 0755, true);
//            chown(dirname($echo_path), 'nobody');
//            chgrp(dirname($echo_path), 'nobody');
        }

        imagepng($background,$echo_path);	//把生成的背景图+二维码资源 放到了目标路径下
        imagedestroy($background);
        imagedestroy($qrcode_res);
        return $echo_path;	//生成图片的结果地址
    }

效果如下如下:
在这里插入图片描述
扫码即可接入百度页面

参考:
ThinkPHP5使用phpqrcode生成二维码
使用phpqrcode.php生成二维码并合并到背景图片上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈能源管理系统在电子厂房中的应用

贾丽丽 安科瑞电气股份有限公司上海嘉定201801 摘要:以能耗管理系统在工业厂房的应用为例,介绍了系统架构及功能。重点分析能耗管理系统在工业厂房实施过程中遇到的难点,并对系统采集的数据进行分析,提出了相应的节能措施&#…

【百问百答】可靠性基础知识第七期

1.什么是振动频率范围? 振动频率范围表示振动试验由某个频率点到另一个频率点进行往复扫频。 例如:试验频率范围5~500Hz,表示5Hz到500Hz进行往复扫频 2.什么是振动量? 振动量:通常用加速度和位移来表示; 加速度:表…

轻松延长手机待机时长,2步设置让你告别电量焦虑

在现代社会中,手机成为了我们生活中不可或缺的伙伴。然而,随着手机功能的日益增多和使用频率的提高,电池续航时间成为了让许多人苦恼的问题。谁不曾遇到过电量不足的尴尬情况?当我们需要手机时,却发现它只剩下最后一丝…

2023年华数杯大学生数学建模【B题不透明制品最优配色方案设计】详细建模方案

目录 完整思路下载链接:这里获取2023华数杯全国大学生数学建模竞赛题目B 题不透明制品最优配色方案设计✅ 问题1问题1建模思路✅ 问题2问题2建模思路✅ 问题3问题3建模思路✅ 问题4问题4建模思路提供的数据和资料: 完整思路下载链接:这里获取…

高电压功率放大器原理是什么意思

高电压功率放大器是一种特殊类型的功率放大器,它可以将输入信号放大到高电压水平。这种设备通常用于测试和测量应用、电子学研究以及医疗成像等领域。它们的工作原理基于半导体器件(如晶体管或MOSFET)和放大器电路的组合使用,可以…

公司新来了个00后,一副毛头小子的样儿,哪想到是新一代卷王...

内卷,是现在热度非常高的一个词汇,随着热度不断攀升,隐隐到了“万物皆可卷”的程度。 在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不…

【文献分享】KITTI里程计排行榜上第五!CT-ICP:实时弹性激光雷达里程计与回环检测

论文题目:CT-ICP: Real-time Elastic LiDAR Odometry with Loop Closure 中文题目:CT-ICP:实时弹性激光雷达里程计与回环检测 作者:Pierre Dellenbach, Jean-Emmanuel Deschaud, Bastien Jacquet and Francois Goulette 作者机构&#xff…

逻辑代数运算

逻辑代数运算中的三种基本运算 与(AND):只有满足全部条件,才会产生结果 或(OR) :只要满足一个条件,就会产生结果 非(NOT):只要满足条件&#xff…

14-4_Qt 5.9 C++开发指南_QUdpSocket实现 UDP 通信_UDP组播

文章目录 1. UDP组播的特性2. UDP 组播实例程序的功能3. 组播功能的程序实现4. 源码4.1 可视化UI设计4.2 mainwindow.h4.3 mainwindow.cpp 1. UDP组播的特性 下图简单表示了组播的原理。UDP 组播是主机之间“一对一组”的通信模式,当多个客户端加入由一个组播地址定…

爆卖1.5万件!这款美牙神器成TikTok“现象级爆款!

在大多数美国人心中,健康洁白的牙齿是自信社交的底气,这使得他们对牙齿美白格外重视。 特看数据显示,TikTok Shop美国小店有一款“牙齿美白套件”近两个多月以 300 元的客单价爆卖 1.5 万件,截至7月 26日,产品近7 天共…

HTML基础铺垫

😊HTML基础铺垫 👻前言📜HTML文档结构🎭头部head🥏标题title标记🥏元信息meta标记 🎭主体body🥏body标记🥏body标记属性 🎭HTML基本语法🥏标记类型…

最新SecureCRT 中文注册版

SecureCRT是一款由VanDyke Software公司开发的终端仿真软件,它提供了类似于Telnet和SSH等协议的远程访问功能。SecureCRT专门为网络管理员、系统管理员和其他需要保密访问网络设备的用户设计。 软件下载:SecureCRT for ma注册版 远程访问:Sec…

海外市场品牌定位策略:打造独特品牌形象的关键步骤

在海外市场建立品牌,品牌定位是至关重要的一环。品牌定位是指企业在目标市场中通过一系列战略来塑造品牌形象和传达品牌价值,以区别于竞争对手并满足目标客户的需求和愿望。 在国际化的背景下,品牌定位需要更加细致入微和深思熟虑&#xff0…

《Linux从练气到飞升》No.07 Linux第一个小程序-进度条的实现

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

vue SKU已知sku.tree算出sku.list类目值和id

已知sku.tree算出sku.list类目值和id <van-skuref"sku"v-model"showBase":close-on-click-overlay"closeOnClickOverlay":goods"skuData.goods_info":goods-id"skuData.goods_id":hide-stock"skuData.sku.hide_stoc…

Android Ble蓝牙App(二)连接与发现服务

Ble蓝牙App&#xff08;二&#xff09;连接与发现服务 前言正文一、GATT回调二、连接和断连三、连接状态回调四、发现服务五、服务适配器六、显示服务七、源码 前言 在上一篇中我们进行扫描设备的处理&#xff0c;本文中进行连接和发现服务的数据处理&#xff0c;运行效果图如下…

CSGO游戏搬砖行业乱象

CSGO游戏搬砖行业乱象 CSGO游戏搬砖&#xff0c;这个项目&#xff0c;这个概念相信大家已不再陌生。CSGO这款全球竞技游戏&#xff0c;也早已不是当初的游戏&#xff0c;而是带着目的&#xff0c;带着经济系统向大家缓缓走来&#xff0c;一个虚拟的空间&#xff0c;一种虚拟的…

【大数据】Flink 从入门到实践(一):初步介绍

Flink 从入门到实践&#xff08;一&#xff09;&#xff1a;初步介绍 Apache Flink 是一个框架和分布式处理引擎&#xff0c;用于在 无边界 和 有边界 数据流上进行 有状态 的计算。Flink 能在所有常见集群环境中运行&#xff0c;并能以内存速度和任意规模进行计算。 1.架构 1…

算法与数据结构-跳表

文章目录 什么是跳表跳表的时间复杂度跳表的空间复杂度如何高效的插入和删除跳表索引动态更新代码示例 什么是跳表 对于一个单链表来讲&#xff0c;即便链表中存储的数据是有序的&#xff0c;如果我们要想在其中查找某个数据&#xff0c;也只能从头到尾遍历链表。这样查找效率…

OceanBase上的泡泡玛特抽盒机,轻松应对百倍流量峰值

8月3日晚10点&#xff0c;近百万年轻人再次同时涌入泡泡玛特的抽盒机小程序&#xff0c;参加抢抽盲盒新品的狂欢。 每周四的这个时刻&#xff0c;都是对抽盒机系统的一次技术大考。这个考验不但影响着用户体验&#xff0c;也直接影响着泡泡玛特的业绩。据2022年年度财报&#…