php生成二维码海报

这篇博客介绍了如何在PHP中利用poser库来创建带有Logo的二维码,并结合其他元素如用户头像、昵称、文字等生成一张完整的海报。示例代码详细展示了从安装poser库到实例化对象、定义各个元素参数,再到最终生成和保存海报的全过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

首先安装poster
composer require xuxuxuzw/poster

实例代码

use Xuxuxuzw\Poster\Poster;

	$background_image_path = "./static/haibao.jpg";//定义海报背景图路径
	
	//视情况而定,可自行下载文字字体 
	$font_path = './css/Xiangyang-DG-wen.ttf';//定义海报使用的文字字体路径 
	
	//定义用户头像信息
     $head_portrait = [
          'width' => 120,
          'height' => 120,
          'img_path' => './user/avatar.png', //头像路径
         'is_circular' => true
     ];
	
	//定义用户昵称信息
    $nickname = [
        'user_name' => 'ceshi',
        'font_path' => $font_path,
        'font_size' => 18,
        'color' => '#3399ff'
    ];
	
	//定义海报保存位置(如果直接浏览器输出可不用)
	$image_save_path = "./upload/fdsfnsfnjdfne.jpg";  //保存到本地路径
	
	// 图片存在 输出路径
	if (file_exists($image_save_path)){
		return $image_save_path;
	}
	
	#获取带logo的二维码图片资源
	//创建海报
	$qrcode = new Poster(250, 250);
	//获取logo图片在二维码的坐标(也可以自己写具体的坐标值,这里提供了 左上角、左下角、右上角、右下角、中上、中心、中下七个点坐标的快速获取)
	$logo_xy = $qrcode->getPosition(0, 50, 50)[Poster::POSITION_CENTER];
	//这里采用链式,可以直接在后面追加
	$image = $qrcode->addQrCode('www.baidu.com', [250, 250], Poster::POSITION_CENTER)//添加一个二维码
	->addImage('./static/logo.jpg', $logo_xy, [50, 50])//添加一个图片(logo)
	->getImageResource(); //这里的二维码不单独使用,所以直接获取图片资源回来即可,生成海报使用 render 方法
	
	
	#生成一张海报
	//创建海报
	$poster = new Poster(800, 1422);
	//这里使用到了用户头像和昵称,直接使用 addUser 方法
	//ps:头像和昵称可以一起展示,也可以单独展示,一起展示时可以设置昵称在头像的右侧和下方,默认昵称在头像右侧
	$poster->user_name_location_direction = Poster::USER_NAME_LOCATION_RIGHT;//设置昵称在头像右侧
	
	//快速获取二维码图片在海报的坐标,这里是获取右下角坐标
	$qrcode_xy = $poster->getPosition(20, 250, 250)[Poster::POSITION_RIGHT_BOTTOM];
	
	$poster->addImage($background_image_path, [0, 0], [800, 1422])//添加一个图片(背景图)
	->addImageResource($image, $qrcode_xy, [250, 250])//添加一个图片资源(上方得到的二维码)
	->addQrCode('https://me.csdn.net/xzw1315915745', [250, 250], Poster::POSITION_RIGHT_BOTTOM)//直接添加二维码方式,可以直接设置二维码在海报的位置,但无 logo
	->addUser($head_portrait, $nickname, Poster::POSITION_TOP_LEFT_CORNER)//添加用户头像和昵称信息
	->addText('A B C', 72, [80, 330], '#33ff99', $font_path)//添加文字,
	->render($image_save_path);//浏览器输出图片,传入图片路径,即可直接输出到服务器 render($image_save_path);
	return $image_save_path;

提醒:需要修改组件片段代码

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值