利用thinkphp5的水印功能做图片海报
我自己网上开发了个微信投票,其中为了方便选手宣传就生成的图片海报,利于传播不易于被举报,下面给出关键代码片段,技术人员自行研究。
// 0. 确定海报路径 $voteimg_n = str_replace('.', '_bh.', $voteimg); // 1. 合并横幅【这里打个标记:如果是自定义了水印图片,那么需要修改位置起点】 $image = \think\Image::open('.' . $voteimg); if ($voteimgaction['vote_type'] == 1 && isset($voteimgaction['watermark']) && $voteimgaction['firstheight'] > 0 && $voteimgaction['firstwidth'] > 0) { // 图文海报 $image->water('.' . $voteimgaction['watermark'], 1, 100)->save('.' . $voteimg_n); } else { // 图文投票 $image->water('./static/wechat/image/bottom.png', 8, 70)->save('.' . $voteimg_n); } // 2. 生成口号 $image = \think\Image::open('.' . $voteimg_n); if ($voteimgaction['vote_type'] == 1 && isset($voteimgaction['watermark']) && $voteimgaction['firstheight'] > 0 && $voteimgaction['firstwidth'] > 0) { // 图文海报 $newstr = ' 我是「' . $param['vote_title'] . '」 ' . $param['manifesto'] . ' 微信识别二维码关注铜梁视窗,关注铜梁生活 http://www.5atl.com'; $image->text('“' . $newstr, './static/fonts/STHeiti-Medium.ttc', 24, '#ffffff', 7, - 60, 0)->save('.' . $voteimg_n); } else { // 图文投票 $newstr = ' 我是' . $param['itemnum'] . '号选手「' . $param['vote_title'] . '」 ' . $param['manifesto'] . ' 微信识别二维码回复关键词“投票+' . $param['vote_id'] . '+' . $param['itemnum'] . '”投我一票吧'; $image->text('“' . $newstr, './static/fonts/msyh.ttc', 14, '#0A8BD6', 7, - 60, 0)->save('.' . $voteimg_n); } // 3. 将海报赋值到第一个图片 $voteimg_n = $uploader->uploadtoqiniu($voteimg_n); if (strstr($param['vote_imgs'], ',')) { $param['vote_imgs'] = $voteimg_n . ',' . $param['vote_imgs']; } else { $param['vote_imgs'] = $voteimg_n; }
网站登录http://www.5atl.com 也可以预览效果