Skip to content

guojiangclub/laravel-miniprogram-poster

Repository files navigation

Laravel 小程序图文海报生成包

微信小程序中生成朋友圈分享图文海报一种可以实际使用的解决方案

Build Status Scrutinizer Code Quality Code Coverage Build Status

特性

  1. 基于 html 可实现复杂的文字,图片,阴影效果。
  2. 清晰度和文件大小合理
  3. 使用简单、即插即用
  4. 存储 Model 对象和图片对应关系,避免重复生成图片。

体验

扫码进入商品详情页分享生成图文体验

果酱小店

安装

composer require ibrand/laravel-miniprogram-poster:~2.0 -vvv
  • 低于 Laravel5.5 版本,config/app.php 文件中 providers 添加iBrand\Poster\PhantoMmagickServiceProvider::class

  • 图片保存在 storage/app/public 下所以需要执行 php artisan storage:link

  • 如需自定义配置请执行 php artisan vendor:publish --provider="iBrand\Poster\PhantoMmagickServiceProvider" --tag="config"

配置项

return [
	'default'    => [
		'storage' => env('DEFAULT_POSTER_STORAGE', 'qiniu'),
	],
	//图片存储位置
	'disks'      => [
		'qiniu'            => [
			'driver'     => 'qiniu',
			//七牛云access_key
			'access_key' => env('QINIU_ACCESS_KEY', ''),
			//七牛云secret_key
			'secret_key' => env('QINIU_SECRET_KEY', ''),
			//七牛云文件上传空间
			'bucket'     => env('QINIU_BUCKET', ''),
			//七牛云cdn域名
			'domain'     => env('QINIU_DOMAIN', ''),
			//与cdn域名保持一致
			'url'        => env('QINIU_DOMAIN', ''),
			'root'       => storage_path('app/public/qiniu'),
		],
		'MiniProgramShare' => [
			'driver'     => 'local',
			'root'       => storage_path('app/public/share'),
			'url'        => env('APP_URL') . '/storage/share',
			'visibility' => 'public',
		],
	],
	//图片宽度
	'width'      => '575px',
	//放大倍数
	'zoomfactor' => 1.5,
	//1-9,9质量最高
	'quality'    => 9,
	//是否压缩图片
	'compress'   => true,
	//是否删除废弃图片文件
	'delete'     => true,
];

注:生成海报默认存储七牛云,通过配置项default.storage来设置,如果不适用七牛云,可以通过修改.envDEFAULT_POSTER_STORAGE来修改默认存储storage

使用

定义路由和视图

Router::get('share/goods','ShareController@goods')->name('share.goods');

public function goods()
{
	//你的业务逻辑代码,获取到相关数据
    return view('share.goods',compact('data'));
}

这个步骤通过 Laravel 路由视图来实现海报样式展示

生成图片

生成图片,不关联模型。

$url = route('share.goods');
$result = MiniProgramShareImg::generateShareImage($url);

关联模型

执行 命令生成 posters

php artisan vendor:publish
php artisan migrate

生成图片并关联模型

$goods = Goods::find(1);
$result = MiniProgramShareImg::run($goods, $url);

生成图片、关联模型并且重新生成图片

$goods = Goods::find(1);
$result = MiniProgramShareImg::run($goods, $url,true);

返回结果示例

    [
        'url'  => 'http://xxx.png',   图片访问url
        'path' => 'path/to/image', 图片文件路径
    ]

字体安装

如果需要实现复杂的字体效果,需要安装字体,比如在 centos 上就没有微软雅黑的字体,所以如果生成的图片有指定的特殊字体,需要在服务器上进行安装。

  • window 将下载的字体文件复制到C:Windows\Fonts目录下或者双击字体文件进行安装
  • mac 下载的字体文件 双击字体文件进行安装
  • centos
# 安装微软雅黑
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyh.ttf
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhbd.ttf
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhl.ttf
cd /usr/share/fonts/lyx/
mkdir chinese
cd chinese
mv /tmp/msyhbd.ttf ./
chmod 755 *.ttf
yum -y install mkfontscale
mkfontscale
mkfontdir
fc-cache -fv

Resource

项目基于PhantomMagick

贡献源码

如果你发现任何错误或者问题,请提交ISSUE

果酱云社区

点击跳转

  • 全网真正免费的IT课程平台

  • 专注于综合IT技术的在线课程,致力于打造优质、高效的IT在线教育平台

  • 课程方向包含Python、Java、前端、大数据、数据分析、人工智能等热门IT课程

  • 300+免费课程任你选择

点击跳转