教你用php将二维码和文字结合到一个背景图片上!
发布:smiling 来源: PHP粉丝网 添加日期:2022-07-05 07:20:18 浏览: 评论:0
将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增
1.生成前的图片
生成后的图片
- class codeImg
- {
- private $date,$img,$main,$width,$height,$target,$white;
- public function constr($source)
- {
- $this->date = '' . date('Ymd') . '/';
- $this->img = $this->date . md5($source) . '.jpg';
- $this->main = imagecreatefromjpeg($source);
- $this->width = imagesx($this->main);
- $this->height = imagesy($this->main);
- $this->target = imagecreatetruecolor($this->width, $this->height);
- $this->white = imagecolorallocate($this->target, 255, 255, 255);
- imagefill($this->target, 0, 0, $this->white);
- imagecopyresampled($this->target, $this->main, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height);
- }
- /**
- * 生成二维码
- * @param [type] $website [生成二维码地址]
- * @param string $filename [生成二维路经名称]
- * @param string $level [这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别;]
- * @param integer $size [控制生成图片的大小,默认为4]
- * @param integer $margin [控制生成二维码的空白区域大小]
- * @return [type] [description]
- */
- public function qrencode($website, $filename = false, $level = "L", $size = 4, $margin = 2)
- {
- include "./phpqrcode/qrlib.php";
- QRcode::png($website, $filename, $level, $size, 2);
- }
- /**
- * 把二维码图片生成到背景图片上及文字
- * @param string $source 背景图片
- * @param string $text1 文字描述
- * @param string $child1 二维码图
- * @param integer $textwidth 文字横向位置
- * @param integer $textherght 文字高度
- * @param integer $$fontSize 字体大小
- * @param integer $cate1,$cate2,$cate3 颜色表
- * @param string $font 文字字体
- * @return [type] [description]
- */
- public function generateFont($source, $text1, $textwidth, $textherght, $fontSize = 18, $cate1 = 255, $cate2 = 250, $cate3 = 250, $font = './font/fangsong_GB2312.ttf')
- {
- $this->constr($source);
- $fontColor = imagecolorallocate($this->target, $cate1, $cate2, $cate3); //字的RGB颜色
- $fontBox = imagettfbbox($fontSize, 0, $font, $text1); //文字水平居中实质
- imagettftext($this->target, $fontSize, 0, $textwidth, $textherght, $fontColor, $font, $text1);
- $this->createImg();
- return $this->img;
- }
- /**
- * [generateImg description]
- * @param string $source 背景图片
- * @param string $codeurl 二维码图片
- * @param integer $sourcewidth 二维码横向所在位置
- * @param integer $sourceheight 二维码高度位置
- * @param integer $codewidth 二维码宽度
- * @param integer $codeheight 二维码高度
- * @return [type] [description]
- */
- public function generateImg($source, $codeurl, $sourcewidth, $sourceheight, $codewidth = 100, $codeheight = 100)
- {
- $this->constr($source);
- $child1 = imagecreatefrompng($codeurl);
- $codewidth = $codewidth > 0 ? $codewidth :imagesx($child1);
- $codeheight = $codeheight > 0 ? $codeheight : imagesy($child1);
- imagecopyresampled($this->target, $child1, $sourcewidth, $sourceheight, 0, 0, $codewidth, $codeheight,imagesx($child1),imagesy($child1));
- imagedestroy($child1);
- $this->createImg();
- return $this->img;
- }
- function createImg()
- {
- @mkdir('./' . $this->date);
- imagejpeg($this->target, './' . $this->img, 95);
- imagedestroy($this->main);
- imagedestroy($this->target);
- }
- }
- $source = "./img/1000.jpg";
- $codeImg = new codeImg($source);
- $website = "http://www.baidu.com";
- $codeurl = "./temp/code.png";
- $codeImg->qrencode($website, $codeurl);
- #################################
- $text = "开始了开始了hahhah呵呵";
- $textwidth = 100;
- $textherght = 50;
- $generateFont = $codeImg->generateFont($source, $text, $textwidth, $textherght);
- ##########################################################
- $sourcewidth = 200;
- $sourceheight = 150;
- $generateImg = $codeImg->generateImg($generateFont, $codeurl, $sourcewidth, $sourceheight);
- echo "<img src='" . $generateImg . "'>";
- ``
Tags: php二维码 php背景图片
- 上一篇:PHP方法处理微信昵称特殊符号过滤
- 下一篇:最后一页
相关文章
- ·PHP下通过QRCode类库创建中间带网站LOGO的二维码(2021-03-20)
- ·php二维码生成(2021-06-20)
- ·php二维码生成以及下载实现(2021-08-09)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)