phpqrcode 生成二维码并将生成的二维码放在某个图片上并添加文字
2022/1/27 17:06:23
本文主要是介绍phpqrcode 生成二维码并将生成的二维码放在某个图片上并添加文字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public function downQrCode($productId) { header("Content-type:image/png"); $label = "扫描二维码领取礼品"; $qrPath = runtime_path('qrcode'); // 存在清空文件不存在创建目录 if (is_dir($qrPath)){ array_map('unlink', glob($qrPath .'*')); } else { mkdir($qrPath,0777,true); } require "vendor/dh2y/think-qrcode/src/phpqrcode/phpqrcode.php"; $qrCode = new \QRcode(); $row = Voucher::find($productId); $res = $row['details']; $result = []; foreach ($res as $code) { $domain = $_SERVER['REQUEST_SCHEME'] . '://' .$_SERVER['SERVER_NAME']; $data = $domain.'/daijinquan?param=mini&code='.$code."_".$productId; $level = 'L'; $size = 7; $QR = $qrPath . time() . ".png"; $qrCode->png($data, $QR, $level, $size, 2); $result[] = $this->fugai($QR,$code); } //生成zip文件下载 $path = app()->getRootPath() . 'upfile/zip/'; if (!is_dir($path))mkdir($path); array_map('unlink', glob($path .'*')); $downName = $row['name'] . date("YmdHis") . '.zip'; $zipName = $path . 'qrcode'.time().'.zip'; $zip = new \ZipArchive(); if ($zip->open($zipName, \ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE)!==TRUE) { exit('无法打开文件,或者文件创建失败'); } foreach($result as $val){ //解压zip直接是文件 $zip->addFile($val, basename($val)); } $zip->close();//关闭 if(!file_exists($zipName)){ exit("无法找到文件"); //即使创建,仍有可能失败 } //如果不要下载,下面这段删掉即可,如需返回压缩包下载链接,只需 return $downName; header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.basename($downName)); //文件名 header("Content-Type: application/zip"); //zip格式的 header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件 header('Content-Length: '. filesize($zipName)); //告诉浏览器,文件大小 @readfile($zipName); return $downName; } public function fugai($QR,$code){ $code_path = runtime_path('qrcode').$code.time().'.png'; $dst_path = root_path('public')."share.png";//背景图片路径 $src_path = $QR;//覆盖图 //创建图片的实例 $dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); //获取覆盖图图片的宽高 list($src_w, $src_h) = getimagesize($src_path); //将覆盖图复制到目标图片上,最后个参数100是设置透明度(100是不透明),这里实现不透明效果 imagecopymerge($dst, $src, 230, 640, 0, 0, $src_w, $src_h, 100); //位置可以自己调试 imagepng($dst,$code_path);//根据需要生成相应的图片 imagedestroy($dst); imagedestroy($src); $image = imagecreatefrompng($code_path); $font = root_path('public').'MSYH.TTF'; // 字体文件 $color = imagecolorallocate($image,0,0,0); // 文字颜色 imagettftext($image, 40, 0, 250, 600, $color, $font, $code); // 创建文字 // imagettftext($image, 10, 0, 250, 600, $color, $font, $code); // 创建文字 imagepng($image,$code_path); return $code_path; }
这篇关于phpqrcode 生成二维码并将生成的二维码放在某个图片上并添加文字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享
- 2024-10-20fruitcake/php-cors 该怎么使用-icode9专业技术文章分享
- 2024-10-18PHP7.1可以使用哪个版本的swoole-icode9专业技术文章分享