| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace app\common\library;
- use think\Cache;
- use think\Hook;
- /**
- * 图片合成
- * Class Image
- * @package app\common\library
- */
- class Image
- {
- /**
- * 生成昵称logo
- * @param $name 商家昵称
- * @return string
- */
- public static function makeLogo($name)
- {
- if(empty($name)){
- return false;
- }
- $len = mb_strlen($name, 'utf8');
- $bg = ROOT_PATH.'/public/uploads/images/bg2.jpeg';
- $dst = imagecreatefromstring(file_get_contents($bg));//获取
- $width = imagesx($dst);
- $height = imagesy($dst);
- $fontSize = $len>=4? 60 : 80;
- $black = imagecolorallocate($dst, 255, 255, 255);//字体颜色(白色)
- $font = realpath(ROOT_PATH.'/public/fonts/yuweim.ttf');//引入字体包 必须加realpath()否则会报错
- $arr = imagettfbbox($fontSize,0, $font, $name);
- $textWidth = $arr[2]-$arr[0];
- imagettftext($dst, $fontSize, 0, ($width-$textWidth-35)/2, intval(($height+$fontSize)/2), $black, $font, $name);//循环添加文字
- header("Content-type: image/png");
- $path = ROOT_PATH.'/public';
- $pic= '/uploads/logo/'.md5($name).'.png';
- imagepng($dst, $path.$pic);//根据需要生成相应的图片并输出(如果需要保存本地就在后面加路径就好)
- imagedestroy($dst);
- return $pic;
- }
- }
|