php生成带自定义logo和带二维码跳转自定义地址的二维码
index.php
<?php
header('Content-type:text/html;charset=UTF-8');
// 指定允许其他域名访问
header('Access-Control-Allow-Origin:*');
// 响应类型f
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
include 'phpqrcode.php';
//$uid = "100001";
$uid = $_POST["uid"];
$qrcodeurl = 'qrcode'.$uid.'.png';
$code = $uid.".png";
//二维码内容
$url = "http://域名/tp3.2/home/Wx2/code?uid=".$uid;//二维码内容
//容错级别
$errorCorrectionLevel = 'L';
//生成图片大小
$matrixPointSize = 4;
QRcode::png($url, $qrcodeurl, $errorCorrectionLevel, $matrixPointSize, 2);
//code【二维码+头像存放地址】、header【头像存放地址】、qrcode【二维码存放地址】
//准备好的logo图片,本人放在了根目录下
//头像地址[读数据库里面的头像具体到服务器的头像地址save_url]
//$logo = 'http://域名/tp3.2/Public/upload/header/header2.png';
require_once('file1.php');
$logo = func1($uid);
//已经生成的原始二维码图,也在根目录下
$qrcode = $qrcodeurl;
//logo图片存在
if ($logo !== FALSE) {
$qrcode = imagecreatefromstring(file_get_contents($qrcode));
$logo = imagecreatefromstring(file_get_contents($logo));
if (imageistruecolor($logo))
{
imagetruecolortopalette($logo, false, 65535);//添加这行代码来解决颜色失真问题
}
$qrcode_width = imagesx($qrcode); //二维码图片宽度
$qrcode_height = imagesy($qrcode); //二维码图片高度
$logo_width = imagesx($logo); //logo图片宽度
$logo_height = imagesy($logo); //logo图片高度
$logo_qr_width = $qrcode_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($qrcode_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($qrcode, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($qrcode, $code);//保存合成图片,命名logqr.png放在该地址中
imagedestroy($qrcode);
imagedestroy($logo);
if(file_exists($qrcodeurl)){ //存在二维码图片
unlink($qrcodeurl);
//echo '输出code3下面的图片为66存在二维码图片就删除222:'.'<img src="'.$code.'" >';
$showcode = "http://域名/code4/".$code;
$json = json_encode($showcode,JSON_UNESCAPED_UNICODE);
$json = str_replace("\\/","/",$json);//以免url地址被反编译
echo $json;
}
else { //不存在二维码图片
//echo '输出code3下面的图片为66不存在二维码图片就不管222:'.'<img src="'.$code.'" >';
$showcode = "http://域名/code4/".$code;
$json = json_encode($showcode,JSON_UNESCAPED_UNICODE);
$json = str_replace("\\/","/",$json);//以免url地址被反编译
echo $json;
}
//echo '输出的图片为66:'.'<img src="'.$code.'" >';
?>
file.php
<?php
function func1($uid)
{
$servername = 'IP';
$username = '用户名';
$password = '密码';
$dbname = '数据库名称';
$port = '端口';
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname,$port);
// Check connection
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
//$uid = "100001";
$sql = "SELECT header.save_url FROM header where uid='$uid'";
$result = $conn->query($sql);
$arr = mysqli_fetch_row($result);
$save_url = $arr[0];
$conn->close();
return $save_url;
}
标签:
php、mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现