php生成二维码合成文字、背景图并保存本地图片

2023-09-20 11:20:09

目录

1、实现效果,二维码二维码合成文字、背景图

2、下载并引入qrcode

3、创建static文件夹下载字体和背景图到这

4、创建test2.php,合成代码


 

1、实现效果,二维码二维码合成文字、背景图

2、下载并引入qrcode
1、到phpqrcpde官网下载类库,官网地址:http://phpqrcode.sourceforge.net/
2、引入phpqrcode文件夹下面phpqrcode.php"
include "phpqrcode/phpqrcode.php";
3、创建static文件夹下载字体和背景图到这

创建img1和img2保存生成后合成图片

4、创建test2.php,合成代码
<?php

include "phpqrcode/phpqrcode.php";
$name=date("YmdHis");//图片名称
$value = "http:/localhost.com/pay/shop?name=".$name;//二维码地址
$errorCorrectionLevel = 'H';//纠错级别:L、M、Q、H
$matrixPointSize = 27;//二维码点的大小:1到10(最大27)
$path=dirname(__FILE__);

$filename=$path.'/img1/'.$name.'.png';
$filename2=$path.'/img2/'.$name.'.png';
$logo=$path.'/static/bj.png';
$fonts=$path.'/static/arialbd.ttf';

if (!file_exists($filename)) {

    $object = new \QRcode();
    $object->png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 0);

    $dest = imagecreatefrompng($logo);
    imagesavealpha($dest, true);//这里很重要

    $src = imagecreatefrompng($filename);

    imagecopymerge($dest, $src, 700, 1220, 0, 0, imagesx($src), imagesy($src), 100); //new

    $red = imagecolorallocate($dest, 255, 0, 0);

    imagefttext($dest, 100, 0, 650, 2400, $red, $fonts, $name);    //new
    imagePng($dest, $filename2);
    imagedestroy($dest);
    imagedestroy($src);

}
$generatedImageUrl = "http://localhost/code/img2/".$name.'.png';

$width = 300;  // 设置宽度为300像素
$height = 300;  // 设置高度为200像素
echo "<img src=\"$generatedImageUrl\" alt=\"二维码图片\" width=\"$width\" height=\"$height\">";
  1. 首先,通过include语句引入了phpqrcode.php文件,该文件是PHP QR Code库的核心文件。
  2. 接着,使用date函数生成一个唯一的文件名,用于保存生成的二维码图片。
  3. 使用$value变量存储二维码的内容,这里是一个示例URL。
  4. 定义了纠错级别和二维码点的大小。
  5. 使用dirname(__FILE__)获取当前文件所在路径,并将其保存在$path变量中。
  6. 根据路径和文件名生成完整的保存路径。
  7. 检查是否已存在同名的二维码图片,如果不存在,则进行以下操作:
    • 使用new \QRcode()创建一个QRcode对象。
    • 调用对象的png方法生成二维码图片。
    • 使用imagecreatefrompng函数创建一个透明背景的画布。
    • 使用imagecreatefrompng函数创建一个二维码图片。
    • 使用imagecopymerge函数将二维码图片合并到背景画布中。
    • 使用imagecolorallocate函数创建一个红色的颜色。
    • 使用imagefttext函数在背景画布上添加文字。
    • 使用imagePng函数将合并后的图片保存到指定路径。
    • 使用imagedestroy函数销毁画布资源。
  8. 设置生成的图片的URL地址。
  9. 设置图片的宽度和高度。
  10. 最后,使用echo语句将带有宽度、高度和URL的<img>标签输出到页面上。 请确保你已经正确安装了PHP QR Code库,并且提供了正确的文件路径和URL地址。
更多推荐

谷歌邀请企业测试人工智能工具Gemini;提升(LLM)性能的三种简单方法

🦉AI新闻🚀谷歌邀请企业测试人工智能工具Gemini,与微软展开竞争摘要:谷歌邀请企业测试其人工智能工具Gemini,该工具结合了GPT-4的文本生成能力,支持聊天对话、分析图表数据、创建图像以及用自然语言命令控制软件等功能。谷歌希望通过Gemini来为其消费类人工智能产品提供支持,同时与微软Azure等竞品展开正

Vue之路由及Node.js环境搭建(一起探索新事物)

目录​编辑前言一、Vue之路由1.路由简介1.1什么是路由1.2什么是SPA1.3SPA的实现思路1.4使用路由的优势2.案例演示2.1导入所需的js文件2.2编写案例代码(模拟页面跳转)二、Vue之node.js1.node.js简介1.1什么是node.js1.2node.js的特点1.3什么是npm1.4npm的

79、SpringBoot 整合 R2DBC --- R2DBC 就是 JDBC 的 反应式版本, R2DBC 是 JDBC 的升级版。

★何谓R2DBCR2DBC就是JDBC的反应式版本,R2DBC是JDBC的升级版。R2DBC是ReactiveRelationalDatabaseConnectivity(关系型数据库的响应式连接)的缩写反应式的就是类似于消息发布者和订阅者,有消息就进行推送。R2DBC中DAO接口中方法的返回值是Flux或Mono因此

嵌入式笔试面试刷题(day5 IIC详解)

文章目录前言一、IIC需要几根线分别是什么线二、IIC优势三、IIC可以挂载多少个从设备,主设备1.从设备数量2.主设备数量四、IIC是全双工还是半双工五、SDA和SCL为什么配置为上拉开漏输出模式1.为什么要配置为开漏输出不能是推挽输出a.实现线与功能b.保护设备不会被短路2.上拉电阻的作用a.确保空闲状态保持高电平

Java synchronized关键字常见面试题

1、什么是线程同步,为什么需要线程同步?线程同步是一种机制,用于控制多个线程对共享资源的访问,以防止并发问题。它需要确保在同一时刻只有一个线程可以访问共享资源,以避免数据竞争和不一致性。2、请解释Java中synchronized关键字的作用和用法。synchronized关键字用于实现线程同步。它可以应用于方法或代码

0021Java程序设计-SSM框架图书管理系统

文章目录摘要目录系统设计开发环境摘要伴随着时代的进步,以及科学技术的不断发展,越来越多的人会从图书馆中借阅书籍,从而获得新的知识。但是,传统的图书管理方法有着很多不便之处,而且还容易丢失,因此,很有必要设计出一个易于操作,具有高便捷性,还可以提高工作效率的图书管理系统。该系统采用了Java技术,采用了计算机技术,取代了

python经典百题之请问他多少岁

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?方法1:迭代deffind_fifth_person_age_iterative():age=10#第一个

Multitor:一款带有负载均衡功能的多Tor实例创建工具

关于MultitorMultitor是一款带有负载均衡功能的多Tor实例创建工具,Multitor的主要目的是以最快的速度完成大量Tor进程的初始化,并将大量实例应用到我们日常使用的程序中,例如Web浏览器和聊天工具等等。除此之外,在该工具的帮助下,我们还可以在进行渗透测试和对基础设施安全性进行审计时提高隐蔽性和匿名性

4、wireshark使用教程

文章目录一、wireshark简介二、环境三、wireshark抓包三、wireshark过滤器使用一、wireshark简介Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。Wireshark抓包原理:单机情况:电脑直连互联网的单机环境。Wireshark直接抓

HR对职业发展进行思考

如果你还没有职业发展方面的思考,请不要怪自己,这很正常。没有谁是一开始就会如此清晰理性地对职业发展进行思考。笔者对职业发展有关话题进行系统性的思考,得益于两本书:第一本是哈佛大学泰勒·本-沙哈尔教授的《幸福的方法》,第二本书是美国学者比尔·博内特和戴夫·伊万斯写的《斯坦福大学人生设计课》,这两本书给了笔者很大的启发,并

【无标题】

未来,该算法可以在低延迟视频编码领域得到广泛应用。例如,该算法可以用于实时视频传输、视频会议、视频监控等场景,以提高视频编码的效率和质量。此外,该算法还可以扩展到其他编码平台,如H.264/AVC、VP9等,以满足不同应用场景的需求。关于每个图和公式的位置,以下是简要说明:图1:位于第2页,显示了所提出的速率控制算法的

热文推荐