All Projects → guojiangclub → laravel-miniprogram-poster

guojiangclub / laravel-miniprogram-poster

Licence: MIT license
Use Laravel to building a miniprogram poster.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to laravel-miniprogram-poster

LaraPersonate
Login as a different user quickly
Stars: ✭ 121 (+68.06%)
Mutual labels:  laravel-package
artisan-shortcuts
🍰 Register shortcuts to execute multiple artisan commands
Stars: ✭ 56 (-22.22%)
Mutual labels:  laravel-package
track-who
Laravel Traits for tracking who's done what to your models
Stars: ✭ 29 (-59.72%)
Mutual labels:  laravel-package
cj-temporal-models
No description or website provided.
Stars: ✭ 29 (-59.72%)
Mutual labels:  laravel-package
laratify
Laravel UI Components using TailwindCSS & AlpineJS
Stars: ✭ 13 (-81.94%)
Mutual labels:  laravel-package
cheers-mp
Almost 零配置微信原生小程序脚手架,vue-cli般的体验~ (゜-゜)つロ 干杯~
Stars: ✭ 32 (-55.56%)
Mutual labels:  miniprogram
miniprogram-picker
微信小程序自定义组件Picker。本组件对微信小程序原生Picker组件进行了二次封装,开发者只需要提供固定数据结构的sourceData,再进行一些必要配置,本组件就可以自动帮助开发者处理联动逻辑。
Stars: ✭ 30 (-58.33%)
Mutual labels:  miniprogram
artisan-cloudflare
Laravel artisan commands for CloudFlare
Stars: ✭ 67 (-6.94%)
Mutual labels:  laravel-package
mp-progress
专注于小程序圆环形进度条的小工具
Stars: ✭ 72 (+0%)
Mutual labels:  miniprogram
wx2bd
微信和百度小程序的互转工具,脚本转换率目标为100%,持续更新中~~
Stars: ✭ 21 (-70.83%)
Mutual labels:  miniprogram
laravel-easyblade
Create an easier & readable Blade (view) in Laravel with EasyBlade
Stars: ✭ 64 (-11.11%)
Mutual labels:  laravel-package
laravel-repoman
Set a payment deadline for the customer
Stars: ✭ 14 (-80.56%)
Mutual labels:  laravel-package
nova-url-field
A URL input and link field for Laravel Nova
Stars: ✭ 96 (+33.33%)
Mutual labels:  laravel-package
laravel-viva-payments
A Laravel package for integrating the Viva Payments gateway
Stars: ✭ 29 (-59.72%)
Mutual labels:  laravel-package
email-checker
Provides email verification on the go.
Stars: ✭ 116 (+61.11%)
Mutual labels:  laravel-package
laravel-sri
Subresource Integrity (SRI) package for Laravel
Stars: ✭ 24 (-66.67%)
Mutual labels:  laravel-package
tarjama
This package allows you to translate your models fields. `2.0` version will be continued here: https://github.com/fevrok/laravel-translatable
Stars: ✭ 2 (-97.22%)
Mutual labels:  laravel-package
panichd
Ticketing system for Laravel 5.1 - 8.x. Allows to create new tickets via form only. Includes file attachments, ticket tags, filtering, scheduling and e-mail notifications.
Stars: ✭ 78 (+8.33%)
Mutual labels:  laravel-package
Laravel-Unsplash-Wrapper
A Laravel wrapper for Unsplash API's.
Stars: ✭ 21 (-70.83%)
Mutual labels:  laravel-package
weapp-template
🚀一个简单实用的微信小程序基础配置模板
Stars: ✭ 112 (+55.56%)
Mutual labels:  miniprogram

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+免费课程任你选择

点击跳转

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].