php生成个性二维码-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
本篇引用 QRcode PHP QR Code download | SourceForge.net 无需composer即可生成
下载后的类文件是一个压缩包里边包含很多文件和演示demo我们只需要里的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件我们只用到了里边的QRcode的第3091行的png()方法
PHP环境必须开启支持GD2扩展库支持一般情况下都是开启状态
直接上代码 核心内容都进行了注释
<?php /** * Desc : * User : RoyalsZch * Date : 2023-11-07 09:29 * @return */ namespace app\controller; use think\facade\Db; use think\facade\Request; class qrCode { public static function scerweima($url = '') { require_once 'D:\zch\testTest\tp\extend\phpqrcode\phpqrcode.php'; $value = $url; //二维码内容 $errorCorrectionLevel = 'L'; //容错级别 $matrixPointSize = 5; //生成图片大小 $rootPath = root_path() . "public/uploads/qrcode"; $dir = self::newDir($rootPath); //生成二维码图片 $filename = $dir . time() . mt_rand(1000, 9999) . '.png'; \QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2); $QR = $filename; //已经生成的原始二维码图片文 $logo = 'C:\Users\***\Desktop\file.png'; if (file_exists($logo)) { $QR = imagecreatefromstring(file_get_contents($filename)); $logo = imagecreatefromstring(file_get_contents($logo)); // logs('./log2.txt',$logo); $QR_width = imagesx($QR);//二维码图片宽度 $QR_height = imagesy($QR);//二维码图片高度 $logo_width = imagesx($logo);//logo图片宽度 $logo_height = imagesy($logo);//logo图片高度 $logo_qr_width = $QR_width / 3; // $scale = $logo_width/$logo_qr_width; // $logo_qr_height = $logo_height/$scale; $logo_qr_height = $logo_height/3; $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"); // imagedestroy($QR); } //输出图片 imagepng($QR, $filename); imagedestroy($QR); imagedestroy($logo); return $filename; // return '<img src="$filename" alt="使用微信扫描支付">'; } public static function newDir($dir = 'qrcode') { //按照年月日创建目录 $file_path = "$dir" . '/' . date("Y") . '/' . date("m") . '/' . date("d") . '/'; //判断给定文件名是否是一个目录 if (!is_dir($file_path)) mkdir($file_path, 777, true); // if (!is_dir($file_path)) { // if (mkdir($file_path, 777, true)) { // echo "创建递归文件夹成功"; // } else { // echo "创建文件夹失败"; // } // } else { // echo "该文件夹已经有了"; // } return $file_path; } //调用查看结果 public static function newCode() { $nowPath = '?nowPath=' . Request::domain(); $willPath = 'https://www.baidu.com'; $finalPath = $willPath . $nowPath; echo self::scerweima($finalPath); } //若想直接输出在浏览器中不生成图片文件则直接 //QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2); }