//PHP设置二维码中间为logo
$qcode = './qcode.png';
$logo = imgZoom('./big.jpg','small.png',0.08);
list($q_width, $q_height)=getimagesize($qcode);
list($l_width, $l_height)=getimagesize($logo);
$x_qcode_logo = ($q_width-$l_width)/2;
$y_qcode_logo = ($q_height-$l_height)/2;$image_qcode = imagecreatefrompng($qcode);
$image_logo = imagecreatefrompng($logo);
//合成照片
//imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )---拷贝并合并图像的一部分
//将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明。
imagecopymerge($image_qcode, $image_logo, $x_qcode_logo,$y_qcode_logo, 0, 0, imagesx($image_logo), imagesy($image_logo), 100);
$merge = 'merge_logo.png';
var_dump(imagepng($image_qcode,$merge));/*** 将指定图片按指定比例等比缩放* @param  [type]  $filename 原图片* @param  [type]  $newFile  缩放后的图片* @param  integer $per      缩放比例* @return [type]            生成存放的路径*/
function imgZoom($filename,$newFile,$per=1){if(!$filename || !$newFile){return flase;}list($width, $height)=getimagesize($filename);$n_w=$width*$per;$n_h=$height*$per;$new=imagecreatetruecolor($n_w, $n_h);$img=imagecreatefromjpeg($filename);//copy部分图像并调整imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);//图像输出新图片、另存为imagecolorallocatealpha($new, 255, 255, 255, 127);imagepng($new, $newFile);imagedestroy($new);imagedestroy($img);return './'.$newFile;
}/**
* PHP生成二维码
* @param [type] $url 扫描二维码跳转的url地址
* @param [type] $m 生成二维码的空白区域大小
* @param string $logo 二维码中间logo的地址
* @return [type] 二维码图片直接输出在页面
*/
function qrcodeLogo() {$url = !empty($_GET['url']) ? trim($_GET['url']) : 'http://blog.58haha.cn';$m = !empty($_GET['m']) ? trim($_GET['m']) : 2;$logo = 'https://www.baidu.com/img/bd_logo1.png';if($url) {include_once '../phpqrcode/phpqrcode.php';$qrcode = new QRcode();if(!empty($logo)){$qrcode::png($url,'qrcode.png', 'L', 7, $m);createLogo($logo);}else{$qrcode::png($url, false, 'L', 7, $m);}}
}/**
* 生成logo
*/
function createLogo($logo){$QR = 'qrcode.png';$QR = imagecreatefromstring(file_get_contents($QR));$logo = imagecreatefromstring(file_get_contents($logo));$QR_width = imagesx($QR);//二维码图片宽度$QR_height = imagesy($QR);//二维码图片高度$logo_width = imagesx($logo);//logo图片宽度$logo_height = imagesy($logo);//logo图片高度$logo_qr_width = $QR_width / 5;$scale = $logo_width/$logo_qr_width;$logo_qr_height = $logo_height/$scale;$from_width = ($QR_width - $logo_qr_width) / 2;//重新组合图片并调整大小imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);// 输出图像header("Content-type: image/png");imagepng($QR);
}

转载于:https://www.cnblogs.com/yeshaoxiang/p/7867792.html

PHP设置二维码中间为logo相关推荐

  1. 【绝对靠谱】Vue生成二维码Qrcode,可插入二维码中心logo图标,可以设置二维码颜色大小等属性

    效果 代码 npm install vue-qr --save 个别网络用 cnpm install vue-qr --save 安装 <template><div class=&q ...

  2. 【相对靠谱】Vue生成二维码Qrcode,可插入二维码中心logo图标,可以设置二维码颜色大小等属性

    效果 代码 npm install vue-qr --save 个别网络用 cnpm install vue-qr --save 安装 <template><div class=&q ...

  3. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  4. zxing Qr二维码(二维码颜色、logo)

    自己封装的二维码生成器,使用方便,案例代码如下 public static void main(String[] args) throws Exception {// logoBufferedImag ...

  5. qrcode 生成二维码,带logo 带文字描述

    qrcode 生成二维码 1.引入 pom.xml 2. ResourceRenderer 3. QRCodeUtil 4. QRCodeController 5. HTML 6. 测试 1.引入 p ...

  6. Java 生成二维码(带logo 文字)

    1. 引入包 <!-- 二维码生成--><dependency><groupId>com.google.zxing</groupId><artif ...

  7. java 通过Qrcode生成二维码添加图片logo和文字描述

    一个简单的javaweb项目 注释比较多直接上代码 附上使用的jar包Qrcode package com.fehorizon.erp.pda.utils;import java.awt.Color; ...

  8. android加载二维码带中间logo

    android加载二维码带中间logo 很简单的,我也是先看了很多博客,然后总结了一下,感谢万能的网友 1导入依赖 //二维码加载依赖 implementation 'com.google.zxing ...

  9. Android 养成记-1.5 二维码生成+添加logo+识别+扫码

    先看图说话: 1.二维码生成: public void generateQRcode() throws FileNotFoundException {String mLink = text.getTe ...

最新文章

  1. Android内核和Linux内核的区别
  2. Spine 2D animation for games
  3. 未能加载文件或程序集“Microsoft.Office.Interop.Owc11, Version=11.0.0.0, ...”或它的某一个依赖项~[解决方案]...
  4. robo 3t连接_使用robo 3t studio 3t连接到地图集
  5. MYSQL:Error Code: 1786 Statement violates GTID consistency: CREATE TABLE ... SELECT.
  6. 狂神Reids学习笔记二
  7. 进击webpack4 (基础篇:配置 一)
  8. 微信读书产品调研报告
  9. DirectX11 With Windows SDK--00 目录
  10. linux安装包apr安装说明,Linux下安装Apr及其Apr-util的基本步骤
  11. Premiere cs6导出MP4格式视频
  12. 精通 Python OpenCV4:第一部分
  13. css 控制文字换行相关属性
  14. 7家自媒体创业项目平台收益技巧和差异对比,你适合哪个?
  15. 国外人经常上的网站,即全球各个领域最大的互联网网站
  16. 差分隐私 深度学习_深度学习中的差异隐私
  17. C语言实现数据结构——链队列
  18. 对于tomcat升级导致游览器访问页面出现的中文乱码问题解决方案
  19. 适合小白的PPT基本操作
  20. java 调用天气预报接口_java调用天气预报接口案例

热门文章

  1. python统计个数的函数_Python
  2. linux 自动ping脚本,linux上ping脚本及zabbix3.xx上自动发现
  3. 网络营销外包——网络营销外包新手如何理解优化对网络营销的重要性?
  4. 网页模板制作只为满足用户需求!
  5. php中redis怎么使用,redis 怎么使用
  6. 获取打印机分辨率_喵喵机P2S热敏打印机,升级屏幕带来了哪些体验??
  7. 多路归并排序_1600W整数排序多路归并
  8. leetcode 342. Power of Four
  9. umi搭建react+antd项目(五)子组件编写
  10. 在CentOS上安装Python