php背景图片上生成二维码,二维码上带图片示例代码
Posted 戈丫汝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php背景图片上生成二维码,二维码上带图片示例代码相关的知识,希望对你有一定的参考价值。
依赖库文件 phpqrcode.php
(下载地址://www.jb51.net/codes/189897.html ;或者在官网下载:http://phpqrcode.sourceforge.net )
代码逻辑:
1.生成一张url相关的 二维码 QR
2.把log图片跟QR合并成一个带logo的二维码 last
3.把带logo的的二维码跟 活动图片合成为一张图 保存到本地 返回路径
1 //参数 活动模板图片,二维码url,模板内二维码的位置 2 function getActivityImg($template,$url,$x,$y) 3 { 4 require_once library_path("/phpqrcode.php"); 5 6 //二维码中间添加logo 7 $logo = public_path(‘/assets/img/logos/logo.png‘); 8 $QR = "base.png"; 9 $last = "last.png"; 10 $errorCorrectionLevel = ‘Q‘; //防错等级 11 $matrixPointSize = 8; //二维码大小 12 13 //生成二维码 14 //参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小 15 QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1); 16 17 //合并logo跟二维码-----------------start 18 $QR = imagecreatefromstring(file_get_contents($QR)); 19 $logo = imagecreatefromstring(file_get_contents($logo)); 20 $QR_width = imagesx($QR); $logo_width = imagesx($logo); 21 $logo_height = imagesy($logo); 22 $logo_qr_width = $QR_width / 5; 23 $scale = $logo_width / $logo_qr_width; 24 $logo_qr_height = $logo_height / $scale; 25 $from_width = ($QR_width - $logo_qr_width) / 2; 26 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); 27 imagepng($QR,$last); // 生成带log的二维码图片 存储到last 28 //合并logo跟二维码-----------------end 29 30 //合成带logo的二维码图片跟 模板图片--------------start 31 $path_1 = $template; 32 $path_2 = $last; 33 $image_1 = imagecreatefromjpeg($path_1); 34 $image_2 = imagecreatefrompng($path_2); 35 $image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1)); 36 $color = imagecolorallocate($image_3, 255, 255, 255); 37 imagefill($image_3, 0, 0, $color); 38 imageColorTransparent($image_3, $color); 39 imagecopyresampled($image_3, $image_1, 0, 0, 0, 0, imagesx($image_1), imagesy($image_1), imagesx($image_1), imagesy($image_1)); 40 imagecopymerge($image_3, $image_2, $x, $y,0, 0, imagesx($image_2), imagesy($image_2), 100); 41 //合成带logo的二维码图片跟 模板图片--------------end 42 43 //输出到本地文件夹 44 $fileName=md5(basename($template).$url); 45 $EchoPath=‘/assets/img/‘.$fileName.‘.png‘; 46 imagepng($image_3,public_path($EchoPath)); 47 imagedestroy($image_3); 48 49 //返回生成的路径 50 return $EchoPath; 51 }
以上是关于php背景图片上生成二维码,二维码上带图片示例代码的主要内容,如果未能解决你的问题,请参考以下文章