当前位置: 首页 > 后端技术 > PHP

Laravel生成小程序图文海报最佳解决方案之一

时间:2023-03-29 16:25:00 PHP

微信小程序官方没有提供分享到朋友圈的方法,所以基本上目前整个行业都是使用生成图文海报发朋友圈,然后识别太阳码进入小程序。很多同学通过Google或者百度提供了一些解决方案,但是我们使用后效果不是很理想,主要有以下几个方面:PHP写的字体效果不理想。背景图和微信头像合成后清晰度不够。无法实现一些复杂的效果。实现过程也比较复杂。最终我们找到了一个非常合理的实现方式,就是基于PhantomJS,利用PhantomJS的隐形浏览器截图功能来生成海报。PhantomJS是一个基于webkit的JavaScriptAPI。它以QtWebKit作为核心浏览器功能,使用webkit编译、解释和执行JavaScript代码。您在基于webkit的浏览器中可以做的任何事情,它都可以做到。它不仅是一个隐形浏览器,还提供了CSS选择器等操作,支持web标准,DOM操作,JSON,HTML5,Canvas,SVG等操作,读写文件等。PhantomJS有着广泛的用途,如网络监控、网页截图、无浏览器网页测试、页面访问自动化等。具有以下优点:基于html,可以实现复杂的文字、图片、阴影效果。清晰度和文件大小合理使用简单,即插即用打包地址:laravel-miniprogram-poster求star:)体验扫码进入商品详情页分享生成图文体验安装composer需要ibrand/laravel-miniprogram-海报低于Laravel5.5版本,在config/app.php文件中的'providers'添加iBrand\Poster\PhantoMmagickServiceProvider::class。图片存放在storage/app/public,所以需要执行phpartisanstorage:link。自定义配置请执行phpartisanvendor:publish--provider="iBrand\Poster\PhantoMmagickServiceProvider"--tag="config"配置项return[//图片存储位置'disks'=>['MiniProgramShare'=>['driver'=>'local','root'=>storage_path('app/public/share'),'url'=>env('APP_URL')。'/storage/share','visibility'=>'public',],]],//图片宽度'width'=>'575px',//放大倍数'zoomfactor'=>1.5,//0-100,100质量最高'quality'=>100,//是否压缩图片'compress'=>true,];使用iBrand\Miniprogram\Poster\MiniProgramShareImg;$url='https://www.ibrand.cc/';$result=MiniProgramShareImg::generateShareImage($url);返回结果:['url'=>'http://xxx.png',图片访问url'path'=>'path/to/image',图片文件路径]字体安装如果需要实现复杂的字体效果,就需要安装字体,比如微软雅黑字体就没有centos,so如果生成的图片有指定的特殊字体,需要在服务器上安装。window将下载的字体文件复制到C:\WindowsFonts目录下或者双击字体文件安装mac下载的字体文件。双击字体文件安装centos#安装微软雅黑wget-P/tmp/https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyh.ttfwget-P/tmp/https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhbd.ttfwget-P/tmp/https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhl.ttfcd/usr/share/fonts/lyx/mkdirchinesesecdchineseemv/tmp/msyhbd.ttf./chmod755*.ttfyum-yinstallmkfontscalemkfontscalemkfontdirfc-cache-fvResource项目基于PhantomMagick讨论交流