|
4 years ago | |
---|---|---|
.. | ||
config | 4 years ago | |
migrations | 4 years ago | |
src | 4 years ago | |
tests | 4 years ago | |
.gitignore | 4 years ago | |
.php_cs | 4 years ago | |
.travis.yml | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
composer.json | 4 years ago | |
phpunit.xml | 4 years ago | |
scrutinizer.yml | 4 years ago |
微信小程序中生成朋友圈分享图文海报一种可以实际使用的解决方案
扫码进入商品详情页分享生成图文体验
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
来设置,如果不适用七牛云,可以通过修改.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 上就没有微软雅黑的字体,所以如果生成的图片有指定的特殊字体,需要在服务器上进行安装。
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