PHP 使用GD库合成带二维码的海报步骤以及源码实现

在做微信项目开发过程中,经常会遇到图片合成的问题,比如将用户的二维码合成到宣传海报中,那么,遇到这种情况,利用PHP的GD库也是很容易实现的,实现步骤如下

准备好素材:

1、二维码原图qrcode.png  尺寸430*430:

2、海报原图test.png  尺寸680*1074:

步骤以及源码:

一、首先是将二维码缩小为206*206,因为使用微信公众号接口获取的二维码尺寸为430*430,图片有点大,所以要缩小成206*206的(此处单位都是px,下面默认也是px)

 1  //已生成二维码路径
 2  $avatarUrl = '\qrcode.png';
 3  //海报路径
 4  $img = '\test.jpg';
 5  //1、将微信二维码缩小至206*206,默认是430
 6  $thumb = imagecreatetruecolor(206,206);     //创建一个新的画布(缩放后的),从左上角开始填充透明背景
 7  $img_content = imagecreatefromjpeg(getcwd().$avatarUrl);//获取图片资源
 8  //dump($img_content);
 9  imagecopyresampled($thumb, $img_content, 0, 0, 0, 0, 206, 206, 430, 430);//核心函数,改变图片大小
10  $file_name = "\qrcode_1.png";
11  imagepng($thumb,getcwd().$file_name);//将图片资源保存到qrcode_1.png中

二、此时在当前目录就会生成一个206*206的以qrcode_1.png命名的图片:,然后将缩小的二维码图片合成到海报中

 1  //2、将缩小的二维码合成到海报中
 2  $imgs = imagecreatefromjpeg(getcwd().$img);
 3  imagecopy($imgs, $thumb, 237, 589, 0, 0, 206, 206);//核心函数:复制图片资源到另一图片资源中
 4  //imagecopy($imgd,$imgw,$x,$y,0,0, $wwidth,$wheight);
 5  //$save="image".$dtype;
 6  //保存到服务器
 7  $f_file_name = "\last.png";
 8  imagepng($imgs,getcwd().$f_file_name); //保存
 9  imagedestroy($imgs);
10  imagedestroy($thumb);//销毁图片资源

此时,最终的合成已经完成,可以查看last.png图片是否符合要求:(其实,细看还是没有完全对好,这就是尺寸计算有问题,稍微修正一下就好)

最后需要注意的是:

1、GD库的imagecreatefrom函数要和图片真实格式对应,比如图片是png格式,则使用imagecreatefrompng(),如果是jpg格式,则使用imagecreatefromjpeg(),切不要以为图片是以.png结尾就一定是png格式的

2、可以使用php自带的getimagesize()函数来获取图片的真正格式

1 //获取图片大小及类型
2 $arr = getimagesize(getcwd().$avatarUrl);
3 dump($arr);die;

执行结果为:

1 array(7) {
2   [0] => int(430) //图片宽度像素值
3   [1] => int(430) //图片高度像素值
4   [2] => int(2)   //图片的类型,返回数字,其中1为gif,2为jpg,3为png,等等
5   [3] => string(24) "width="430" height="430""
6   ["bits"] => int(8)
7   ["channels"] => int(1)
8   ["mime"] => string(10) "image/jpeg" //图片的mime信息
9 }

3、获取图片资源的时候,要通过绝对路径获取,相对路径是获取不到的

转载于:https://www.cnblogs.com/cyfblogs/p/9963309.html

PHP 使用GD库合成带二维码的海报步骤以及源码实现相关推荐

  1. PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现

    PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现 之前记录过一篇文章,不过那只是简单将二维码合成到海报中去,这次还要合成头像,而且是圆形.所需要素材就不一一列举,直接代码吧 1.先获取用 ...

  2. vue 二维数组_最近研究Vue源码时我发现的一些好玩函数

    来源 | segmentfault.com/u/chinamasters 作者 | chinamasters 最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大 ...

  3. python:实现9×9二维数组数独算法(附完整源码)

    python:实现9×9二维数组数独算法 from __future__ import annotationsMatrix = list[list[int]]# assigning initial v ...

  4. 【图像分割】基于matlab灰狼算法二维oust图像分割【含Matlab源码 2574期】

    ⛄一. 灰狼算法简介 1 前言 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法.该算法受到了灰 ...

  5. 【图像分割】灰狼算法二维oust图像分割【含Matlab源码 2574期】

    ⛄一. 灰狼算法简介 1 前言 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法.该算法受到了灰 ...

  6. jquery.qrcode生成带logo的二维码,同时生成带二维码的好友分享图片(js与canvas实现二维码和图片合成的海报)

    首先给大家看一下效果图(纯jQuery前端技术): 提供一下demo 源代码和jquery.qrcode文件下载: https://download.csdn.net/download/qq15577 ...

  7. thinkphp生成带二维码的海报

    阿里云搞活动,想要抓紧买 用thinkphp生成带二维码的海报功能. 准备:公众号二维码图片一张 背景图片一张 将二维码和背景图片合成的方法,可添加到common/common/function.ph ...

  8. PHP生成带二维码的分享图片

    综述 项目开发中需求,要求在APP中进行分享的时候可以分享图片,图片由美工进行设计,其上带有二维码,分享给别人可以直接长按图片进行识别.这种方式在分享中用户体验更好,首先图片由美工设计很好看,其次这种 ...

  9. PHP二维码在线制作生成系统源码 无需数据库 带logo图标

    简介: PHP二维码在线制作生成系统源码 无需数据库 带logo图标 网盘下载地址: http://kekewl.net/Myae89V9DX00 图片:

  10. Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发

    二维码组成结构基本介绍 二维码识别背景介绍 视觉的方法可以用来估计位置和姿态.最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和.相机畸变矫正.轮廓提取.solvepnp来获 ...

最新文章

  1. 2022-2028年中国海水养殖行业市场研究及前瞻分析报告
  2. 重温强化学习之无模型学习方法:蒙特卡洛方法
  3. linux下运行lua,linux下配置Lua运行环境
  4. VMAXe资源配置只用4分钟
  5. Educational Codeforces Round 117 (Rated for Div. 2) ABCDE
  6. mysql远程连接error 1045_启用远程MySQL连接:错误1045(28000):用户被拒绝访问
  7. 在线作图|2分钟绘制一张精美的火山图(Volcano Plot)
  8. Minimax博弈算法设计井字棋AI(Golang)
  9. 字典写入excel_实例9:用Python自动生成Excel档每日出货清单
  10. Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks 论文阅读、复现及思考
  11. 阿里八八“好记”测试报告
  12. 操作系统--6设备管理
  13. 快狗打车CTO沈剑:怕什么技术无穷尽?进一寸有一寸的欢喜
  14. 上井冲刺港交所上市:人均消费金额降幅明显,只在中国经营业务
  15. Microsoft Teams管理(一)
  16. linux下硬件检测工具,Linux硬件检测工具
  17. Springboot健康饮食小程序的设计的实现毕业设计源码280920
  18. c语言中break语句的功能,C语言break语句
  19. 黑苹果安装包(MaxOS)及教程——如何在非苹果电脑上安装MaxOS系统
  20. Linux Sheel中cd dir后直接显示dir下的所有文件

热门文章

  1. 如何通过Photoshop制作Gif图片(把几张图片合成一张Gif图片)
  2. 2022-2027年中国新能源车电控电机市场竞争态势及行业投资前景预测报告
  3. Android 不透明度 对应表
  4. php 预缓存,Steam更新着色器预缓存新功能,OpenGl、Vulkan硬件收效良多
  5. 阿里云 mysql 100_【故障公告】阿里云 RDS 数据库服务器 CPU 100% 造成全站故障
  6. php网站 怎么查是否开源,怎么查看网站的开源程序?
  7. 申报深圳市专精特新中小企业需要哪些条件,及有什么好处
  8. word流程图怎么做虚线框_word虚线框怎么打 word中目录虚线怎么打?
  9. Word双栏右对齐插入MathType公式
  10. word中 插入公式及交叉引用