🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# php海报生成 1.使用了imagick PHP扩展,需要在php中安装 2.使用了Intervention\Image库 需要composer安装 3.Intervention\Image文档地址 :[文档地址](http://image.intervention.io/use/basics) ## 使用方法 ``` use Intervention\Image\ImageManagerStatic as Image; Route::get('poster',function(){ $Qiniu = new \plugins\QiNiu\QiNiu; Image::configure(array('driver' => 'imagick')); $img = Image::make('http://p1i6qu8hf.bkt.clouddn.com/icecreamlove_1x.png'); $img->text('人民共和国万岁啦', 400/2, 300/2+300/2/2+50, function($font) { $font->file('./ping.ttf'); $font->size(36); $font->color('#1abc9c'); $font->align('center'); // $font->valign('top'); }); $img->text('只要20元哦', 400/2, 50, function($font) { $font->file('./ping.ttf'); $font->size(50); $font->color('#1abc9c'); $font->align('center'); // $font->valign('top'); }); // $img->resize(750/2,1334/2); $img->encode(); // $img->widen(300); $ret = $Qiniu->uploadUseFileString($img); echo "<img src='{$ret['url']}' />"; }); ``` ## 待完善部分 1 海报的动态性:海报需要频繁变动,需要删除之前的海报节省空间。 2 已生成的海报无需重复生成。 3 更新时候出发生成。 4 创建海报API ## 实现过程 Qiniu插件中`plugins/QiNiu/QiNiu.php` ``` // 字节组上传 public function uploadUseFileString($file_path){ $config = $this->getConfigValue(); $accessKey = $config['ak']; $secretKey = $config['sk']; $bucket = $config['bucket']; $auth = new Auth($accessKey, $secretKey); $token = $auth->uploadToken($bucket); $uploadMgr = new UploadManager(); list($ret, $err) = $uploadMgr->put($token, null, $file_path); if ($err !== null) { var_dump($err); } else { $ret['url'] = $config['domain'].$ret['key']; return $ret; } } ``` ## 字体加载 $font->file('./ping.ttf'); 中需要加载字体文件方可支持中文。