ibrand / laravel-miniprogram-poster
iBrand 的 Laravel 小程序海报工具
Requires
- php: >=7.0
- chrome-php/chrome: ^0.6.0
- overtrue/laravel-filesystem-qiniu: ^1.0
Requires (Dev)
- orchestra/database: ~3.5
- orchestra/testbench: ~3.5
- phpunit/phpunit: ~6.0
README
微信小程序生成朋友圈分享图文海报的一种实用解决方案
特性
- 基于 HTML 可实现复杂的文字、图片、阴影效果。
- 清晰度和文件大小适中
- 使用简单、即插即用
- 存储模型对象和图片对应关系,避免重复生成图片。
体验
扫码进入商品详情页,分享生成图文体验
安装
composer require ibrand/laravel-miniprogram-poster:~2.0 -vvv
-
Laravel 5.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
来设置。如果不适用七牛云,可以通过修改 .env
中的 DEFAULT_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 上没有微软雅黑的字体,因此如果生成的图片有指定的特殊字体,需要在服务器上进行安装。
- Windows 将下载的字体文件复制到 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
资源
项目基于 PhantomMagick
贡献源代码
如果你发现任何错误或问题,请 提交 ISSUE
果酱云社区
-
全网真正免费的 IT 课程平台
-
专注于综合 IT 技术的在线课程,致力于打造优质、高效的 IT 在线教育平台
-
课程方向包含 Python、Java、前端、大数据、数据分析、人工智能等热门 IT 课程
-
300+免费课程任你选择