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生成带自定义logo和带二维码跳转自定义地址的二维码的更多相关文章

  1. 用vue实现扫描二维码跳转页面功能

    怎么能用vue实现扫描二维码跳转页面功能 1. 安装依赖 npm install vue-qr --save 2. <template>   <div>     <div ...

  2. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...

  3. phpqrcode 分别生成普通、带logo、带背景带logo二维码

    前提:下载好 phpqrcode 类库 1.生成普通二维码 //引入类库 include('phpqrcode/phpqrcode.php'); //二维码里面的链接地址 $url="htt ...

  4. 随手记一次利用开源zxing生成带嵌入logo的二维码图片

    之前就在项目里面用过zxing生成二维码,最近另一个项目同样需要用到二维码,故重新在学了学利用zxing生成二维码 接下来先做准备工作了,因为我是用vs2013上开发的,故选择了.net4.5版本的z ...

  5. 修改二维码生成插件jquery.qrcode.js支持加入自定义LOGO

    1,将jquery.qrcode.min.js和jquery添加到您的网页中 <script src="jquery.min.js"></script> & ...

  6. cookiecutter-flask生成的框架里边自带了一个CRUDMixin类

    单元测试的必要性 之前曾经写过一篇讲单元测试的,正好最近也在实践和摸索.我似乎有种洁癖,就是我会严格遵守流程性的东西,比如测试,注释和文档等.目前就职的公司在我接手项目的时候是没有一行单元测试的,我挺 ...

  7. C# 生成中间含有LOGO的二维码

    效果如下: 1.无LOGO的二维码: 2.含有LOGO的二维码: 一.下载QrCode程序集: 使用的程序集有: 下载地址: http://zxingnet.codeplex.com/ 二.QRCod ...

  8. PHP自定义生成二维码跳转地址

      比较简单的一款PHP自定义生成二维码跳转地址,手机端微信扫码,自动跳转到定义好的链接.支持自定义生成二维码尺寸.间距等.    鼠标悬浮显示二维码弹出层,离开后消失.js实现,代码如下: $(fu ...

  9. 我的Android进阶之旅------>Android自定义View实现带数字的进度条(NumberProgressBar)

    今天在Github上面看到一个来自于 daimajia所写的关于Android自定义View实现带数字的进度条(NumberProgressBar)的精彩案例,在这里分享给大家一起来学习学习!同时感谢 ...

随机推荐

  1. Flutter学习之制作底部菜单导航

    简介 现在我们的 APP 上面都会在屏幕下方有一排的按钮,点击不同的按钮可以进入不同的界面.就是说在界面的底部会有一排的按钮导航.可看下面的图示. 完成图示 程序工程目录 梳理下实现步骤我们需要实现这 ...

  2. DNS隧道实战&&cobaltstrike利用dns隧道

    前言 使用 dns 隧道进行 tcp 通信. 正文 首先配置域名 配置一个 A 记录指向我们的 vps, 然后配置几个 ns 记录,指向刚刚设置的 A 记录 然后在服务端安装 wget https:/ ...

  3. angularjs初识ng-app、ng-model、ng-repeat指令

    ng-app属性是angular.js的标志语句,它标记了angular.js的作用域.ng-app可以添加在很多地方,像上面那样添加到html标签上,说明angular脚本对整个页面都起作用.也可以 ...

  4. Linux服务器安装redis数据库教程

    前面小Alan给大家说了jdk的安装,这篇跟大家聊聊redis非关系型数据库在Linux服务器的安装. redis简单介绍 REmote DIctionary Server(Redis) 是一个由Sa ...

  5. Python 应用剖析工具介绍

    [编者按]本文作者为来自 HumanGeo 的工程师 Davis,主要介绍了用于 Python 应用性能分析的几个工具.由国内 ITOM 管理平台 OneAPM 编译呈现. 在 HumanGeo,我们 ...

  6. leetCode题解 寻找运动环

    1.题目描述 Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this ...

  7. [翻译] RAReorderableLayout

    RAReorderableLayout A UICollectionView layout which you can move items with drag and drop. 一种UIColle ...

  8. linux下手动安装git教程

    Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.而国外的GitHub和国内的Coding都是项目的托管平台.但是在使用git工具的时候,第一步要学会如何安装gi ...

  9. MySQL 索引的介绍与应用

    Mysql索引 一. mysql 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 二:MySQL索引类型 按存储结构区分:聚集索引(又称聚类索引,簇 ...

  10. 多路I/O复用(select、poll、epoll)的比较学习:

    elect.poll.epoll之间的区别总结[整理]  转自:http://www.cnblogs.com/Anker/p/3265058.html   select,poll,epoll都是IO多 ...