依赖库文件 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的二维码图片 存储到last28 ??????//合并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背景图片上生成二维码,二维码上带图片示例代码
原文地址:https://www.cnblogs.com/gyrgyr/p/9923564.html