Skip to content
Use Laravel to building a miniprogram poster.
PHP
Branch: master
Clone or download
Latest commit 6aefd88 Apr 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config 修改七牛云存储方式 anam/phantommagick增加adapter qiniu Feb 18, 2019
migrations 1. 添加是否删除废弃图片的配置。2.取消删除字段。3.简化HasPoster代码。4.FIX CS. 5.update test case. Nov 29, 2018
src
tests update phpunit Feb 18, 2019
.gitignore update .gitignore. Dec 16, 2018
.php_cs update unit test. Sep 20, 2018
.travis.yml update unit test. Sep 20, 2018
LICENSE update unit test. Sep 20, 2018
README.md 更新文档 Jan 22, 2019
composer.json 1. update author's email. 2. remove default china composer. Mar 9, 2019
phpunit.xml 生成小程序分享图片 Sep 13, 2018
scrutinizer.yml update unit test. Sep 20, 2018

README.md

Laravel 小程序图文海报生成包

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

Build Status Scrutinizer Code Quality Code Coverage Build Status

特性

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

体验

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

iBrand开源体验店

安装

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

You can’t perform that action at this time.