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

news2024/12/23 1:36:48

目录

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地址。

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

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

相关文章

UltraEdit 22 编辑器 for Mac

UltraEdit 是一款功能强大的文本编辑器和源代码编辑器。它具有多种功能&#xff0c;适用于程序员、网站开发人员和其他需要处理大量文本内容的用户。 UltraEdit 提供了正则表达式搜索和替换功能&#xff0c;可以快速查找和修改文本中的特定内容。它还支持多文件编辑和多窗口布局…

掌握文案新技能,拓世AI让你成为朋友圈文案达人

“人生如戏&#xff0c;戏如人生”&#xff0c;这是一句缥缈却真实的话&#xff0c;我们在生活中扮演着各种角色&#xff0c;经营自己的人生。如同美国社会学家戈夫曼提出的“拟剧论”&#xff1a;他将社会和人生比作一个大舞台&#xff0c;我们都在关心如何在众多观众面前打造…

Linux动态库

定义&#xff1a;动态函数库&#xff0c;是在程序执行时动态&#xff08;临时&#xff09;由目标程序去调用 优点&#xff1a; 调用时不复制&#xff0c;程序运行时动态加载到内存&#xff0c;供程序调用&#xff0c;系统只加载一次&#xff0c;多个程序可以共用&#xff0c;…

百亿、补贴这种低价怎么控

随着电商平台流量竞争的激烈演变&#xff0c;越来越多的促销形式进入人们的眼球&#xff0c;而店铺最简单的营销就是通过价格&#xff0c;所以低价销售成了各平台吸引消费者的方式&#xff0c;百亿补贴因为其独特的属性&#xff0c;与平台挂钩&#xff0c;通过“全网最低价”的…

VB在窗体中显示1000以内的完数

VB在窗体中显示1000以内的完数 在窗体中显示1000以内的完数&#xff08;如果一个整数的所有因子&#xff08;包括1&#xff0c;但不包括本身&#xff09;之和与该数相等&#xff0c;则称这个数字为完数。例如6123&#xff0c;所以6是一个完数&#xff09; Private Function Is…

【前端知识】Three 学习日志(五)—— 点光源辅助观察

Three 学习日志&#xff08;五&#xff09;—— 点光源辅助观察 一、引入点光源辅助观察 // 光源辅助观察 const pointLightHelper new THREE.PointLightHelper(pointLight, 10); scene.add(pointLightHelper);二、改变点光源位置 // 点光源位置 pointLight.position.set(2…

[补题记录] Atcoder Beginner Contest 308(C~E)

URL&#xff1a;https://atcoder.jp/contests/abc308 目录 C Problem/题意 Thought/思路 Code/代码 D Problem/题意 Thought/思路 Code/代码 E Problem/题意 Thought/思路 Code/代码 C Problem/题意 给出n个&#xff08;a&#xff0c;b&#xff09;数对&#xff…

短视频矩阵系统源代码开发搭建分享--代码开源SaaS

一、什么是短视频矩阵系统&#xff1f; 短视频矩阵系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案&#xff0c;具体包含&#xff1a;点赞关注评论主动私信 &#xff0c;评论区回复&#xff0c;自动潜客户挖掘&#xff0c;矩阵号营销&#x…

H3C ER G2系列路由器敏感信息泄露漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 H3C ER2200G2是H3C推出的新一代高性能企业级路由器&#…

【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信

一、事件处理器 我们之前事件监听可以使用v-on 指令 1、事件修饰符 在Vue中我们通过由点(.)表示的指令后缀来调用修饰符&#xff0c;比如&#xff1a; .stop&#xff1a;阻止事件冒泡。当事件触发时&#xff0c;该修饰符将停止事件进一步冒泡到父元素。相当于调用了 event.stop…

CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?

问题现象 在 CoreData 支持的 App 中,当我们新建或更新托管对象到一半突然出现错误时,应该禁止任何已发生的改变被写入内存或数据库中。不过,有时仍会出现始料未及的“意外”: 从上面的演示可以看到:即使在 Item 对象新建和更新途中出现错误后不执行后续的保存操作,但界…

决策树(中):数据挖掘十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

多通道振弦数据记录仪隧道中安全监测应用方案

多通道振弦数据记录仪隧道中安全监测应用方案 近年来&#xff0c;随着城市化进程的加速推进&#xff0c;隧道建设越来越普遍。然而&#xff0c;隧道建设也带来了一系列安全问题&#xff0c;如地质灾害、水文灾害、交通事故、火灾等。因此&#xff0c;对隧道的安全监测非常重要…

20230920研发面经整理

1.cpp中的虚函数和虚函数表 C中的虚函数的作用主要是实现了多态的机制。关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数 虚函数表是指在每个包含虚函数的类中都存在着一个函数地址的数组。当我们用…

免费好用bpm平台,实现生产管理系统

1.什么是生产管理系统 生产制造管理系统主要是以生产制造管理为核心&#xff0c;其管理功能包括产品结构设置&#xff08;BOM&#xff09;生产计划、加工、领料、质检、库存、成本核算等。通过信息化解决行业管理问题&#xff0c;满足各企业科学管理的需求&#xff0c;并为制造…

Ubuntu上线一个JAVA环境微服务架构的系统

项目背景: 项目目的: 项目架构: 配置环境: 流程: 1、系统安装 更改root密码 sudo passwd root 设置root密码123 切换用户 su root 输入root密码123 2、开启root远程ssh 编辑配置文件 vi /etc/ssh/sshd_config 更改以下行 #PermitRootLogin prohibit-passwor…

【BeanTrimUtil】通过反射去除JavaBean中String类型数据的空格:一行代码搞定整个Bean的字符串去空!

【原文地址】 https://blog.csdn.net/qq_36170500/article/details/107250282 简化不必要的代码逻辑纯原生环境亦可运行 import java.lang.reflect.Field; import java.lang.reflect.Method;/*** author zhoudeshui v1.1* Desc 版权声明&#xff1a;本文为CSDN博主「一个人的编…

公众号迁移线上公证靠谱吗?

公众号账号迁移的作用是什么&#xff1f;只能变更主体吗&#xff1f;微信公众平台的帐号迁移功能可将原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移至新的公众号。通过迁移可以实现公众号的公司主体变更、粉丝转移、开通留言功能、服务号转为订阅号等作用。因此不…

电脑剪切板在哪?4个方法教你提高效率!

“我在电脑上复制了一些图像&#xff0c;电脑显示已经保存在了剪切板&#xff0c;但是我找了好久都不知道电脑的剪切板在哪。有朋友可以指点一下吗&#xff1f;” 电脑剪切板是计算机操作中一个常用且强大的工具&#xff0c;它允许你复制、剪切和粘贴文本、图像、文件等。无论是…

期权佣金是如何收取的?成交手续费是怎么计算的?

现在期权新开户佣金1.7元/张&#xff0c;超优惠活动&#xff01; 期权佣金是默认在6元一张收取的&#xff0c;可以申请调低的&#xff0c;证券公司可以结合运营成本制定合理的期权佣金优惠费率&#xff0c;但是不同的客户&#xff0c;不同的实际情况&#xff0c;都可能会影响期…