assign('breadcrumb1','海报'); $this->assign('breadcrumb2','生成海报'); } /** * 列表页 * * */ public function index(){ // 加载模板 return $this->fetch(); } /** * 获取小程序链接 * */ private function getUrlLink($id){ // 结果数据 $link = cache('admin:recruitment:active:urllink:'.$id); // 不存在数据 if ( is_null($link) ) { // 从数据库获取数据 $link = Mini::getUrlLink('pages/recruitment/index','id='.$id); // 存起来 cache(['admin:recruitment:active:urllink:'.$id=>$link],$link ? now()->addDays(28) : now()->addMinutes(3)); } // 返回结果 return $link; } /** * 获取小程序海报 * */ public function get_poster(){ // 接收参数 $id = request('id',0); $url = request('url',0); $position = request('position',0); $thumb = request('thumb',0); $size = request('size',0); if( !$thumb ) return json_send(['code'=>'error','msg'=>'请上传海报图片']); // 获取分享海报图片 $result = $this->getShareImage('id='.$id,$thumb,$url,$position,$size); $this->assign('image',$result); $this->assign('crumbs','海报'); // 加载模板 return $this->fetch(); } /** * 获取分享海报图片 * @param int $scene 场景值 * */ private function getShareImage($scene,$thumb,$url,$position,$size){ // 尝试执行 try { // 加载图片 $image = Image::make(public_path('uploads/').$thumb); // 生成小程序二维码 $qrcode = Mini::getUnlimit($scene,['page'=>$url,'width'=>$size,'is_hyaline'=>true]); // 错误提示 if( isset($qrcode['error']) ) return $qrcode; if ($size < 280){ // 加载图片 压缩 $qrcode = Image::make($qrcode)->resize($size,$size); }else{ // 加载图片 $qrcode = Image::make($qrcode); } // 插入图片 switch ($position) { case 1: $image->insert($qrcode,'top-left',0,0); break; case 2: $image->insert($qrcode,'top-center',0,0); break; case 3: $image->insert($qrcode,'top-right',0,0); break; case 4: $image->insert($qrcode,'center-left',0,0); break; case 5: $image->insert($qrcode,'center-center',0,0); break; case 6: $image->insert($qrcode,'center-right',0,0); break; case 7: $image->insert($qrcode,'bottom-left',0,0); break; case 8: $image->insert($qrcode,'bottom-center',0,0); break; case 9: $image->insert($qrcode,'bottom-right',0,0); break; } // 转码成字符串 $image = $image->encode('jpg', 90)->__toString(); // 转base64 $base64 = 'data:image/jpg;base64,' . base64_encode($image); // 返回结果 return $base64; } catch (\Throwable $th) { // 错误提示 return ['error'=>$th->getMessage()]; } } }