马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- /**
- * 根据图片数组 拼接成九宫格式拼图
- * @param array $pic_list [带拼成的图片数组]
- * @param integer $bg_w [背景图片宽度]
- * @param integer $bg_h [背景图片高度]
- * @param string $format [阿里云图片获取参数]
- * @return [type] [返回一个拼接好的图片(路径)]
- */
- public function make_group_avatar($pic_list = array(),$bg_w = 500,$bg_h=500,$format="?x-oss-process=image/resize,w_80,h_80"){
- // $pic_list = array(
- // 'http://res.qhhznt.com/rm6666/image/201708/1502870752784.jpg',
- // 'http://res.qhhznt.com/rm8888/image/201708/1502866491478.jpg',
- // 'http://res.qhhznt.com/rm102003/image/20180112/15157540161.jpg',
- // // 'http://res.qhhznt.com/rm102016/image/201708/1502875655353.jpg',
- // // 'http://res.qhhznt.com/rm102021/image/201708/1503049660444.jpg',
- // // 'http://res.qhhznt.com/rm102032/image/201710/1506844817016.jpg',
- // // 'http://res.qhhznt.com/rm102060/image/201709/1505301716128.jpg',
- // // 'http://res.qhhznt.com/rm102061/image/201709/1506126876343.jpg',
- // // 'http://res.qhhznt.com/rm102063/image/201710/1508984047181.jpg',
- // );
-
- $pic_list = array_slice($pic_list, 0, 9); // 只操作前9个图片
-
- $background = imagecreatetruecolor($bg_w, $bg_h); // 背景图片
-
- //int imagecolorallocate ( resource $image , int $red , int $green , int $blue ) 为一幅图像分配颜色
- $color = imagecolorallocate($background, 202, 201, 201); // 为真彩色画布创建白色背景,再设置为透明
- imagefill($background, 0, 0, $color); //区域填充
- imageColorTransparent($background, $color); // 将某个颜色定义为透明色
-
- $pic_count = count($pic_list);
- $lineArr = array(); // 需要换行的位置
- $space_x = 3;
- $space_y = 3;
- $line_x = 0;
- switch($pic_count) {
- case 1: // 正中间
- $start_x = intval($bg_w/4); // 开始位置X
- $start_y = intval($bg_h/4); // 开始位置Y
- $pic_w = intval($bg_w/2); // 宽度
- $pic_h = intval($bg_h/2); // 高度
- break;
- case 2: // 中间位置并排
- $start_x = 2;
- $start_y = intval($bg_h/4) + 3;
- $pic_w = intval($bg_w/2) - 5;
- $pic_h = intval($bg_h/2) - 5;
- $space_x = 5;
- break;
- case 3:
- $start_x = 124; // 开始位置X
- $start_y = 5; // 开始位置Y
- $pic_w = intval($bg_w/2) - 5; // 宽度
- $pic_h = intval($bg_h/2) - 5; // 高度
- $lineArr = array(2);
- $line_x = 4;
- break;
- case 4:
- $start_x = 4; // 开始位置X
- $start_y = 5; // 开始位置Y
- $pic_w = intval($bg_w/2) - 5; // 宽度
- $pic_h = intval($bg_h/2) - 5; // 高度
- $lineArr = array(3);
- $line_x = 4;
- break;
- case 5:
- $start_x = 85.5; // 开始位置X
- $start_y = 85.5; // 开始位置Y
- $pic_w = intval($bg_w/3) - 5; // 宽度
- $pic_h = intval($bg_h/3) - 5; // 高度
- $lineArr = array(3);
- $line_x = 5;
- break;
- case 6:
- $start_x = 5; // 开始位置X
- $start_y = 85.5; // 开始位置Y
- $pic_w = intval($bg_w/3) - 5; // 宽度
- $pic_h = intval($bg_h/3) - 5; // 高度
- $lineArr = array(4);
- $line_x = 5;
- break;
- case 7:
- $start_x = 166.5; // 开始位置X
- $start_y = 5; // 开始位置Y
- $pic_w = intval($bg_w/3) - 5; // 宽度
- $pic_h = intval($bg_h/3) - 5; // 高度
- $lineArr = array(2,5);
- $line_x = 5;
- break;
- case 8:
- $start_x = 80.5; // 开始位置X
- $start_y = 5; // 开始位置Y
- $pic_w = intval($bg_w/3) - 5; // 宽度
- $pic_h = intval($bg_h/3) - 5; // 高度
- $lineArr = array(3,6);
- $line_x = 5;
- break;
- case 9:
- $start_x = 5; // 开始位置X
- $start_y = 5; // 开始位置Y
- $pic_w = intval($bg_w/3) - 5; // 宽度
- $pic_h = intval($bg_h/3) - 5; // 高度
- $lineArr = array(4,7);
- $line_x = 5;
- break;
- }
-
- foreach( $pic_list as $k=>$pic_path ) {
- $kk = $k + 1;
- if ( in_array($kk, $lineArr) ) {
- $start_x = $line_x;
- $start_y = $start_y + $pic_h + $space_y;
- }
-
- $resource = imagecreatefromjpeg($pic_path.$format);
-
- // $start_x,$start_y copy图片在背景中的位置
- // 0,0 被copy图片的位置 $pic_w,$pic_h copy后的高度和宽度
- imagecopyresized($background,$resource,$start_x,$start_y,0,0,$pic_w,$pic_h,imagesx($resource),imagesy($resource)); // 最后两个参数为原始图片宽度和高度,倒数两个参数为copy时的图片宽度和高度
- $start_x = $start_x + $pic_w + $space_x;
- }
-
- $fname= date('YmdHis').rand(100,999).'.jpg';
-
- // 保存图像为 $imagePath.'$fname'.'.jpg'
- $imagePath = './public/uploads/group_temp/' . $fname;
-
- $this->create_dirs($imagePath);
-
- // header("Content-type: image/jpg");
- // imagejpeg($background);die;//直接生成图片查看
-
- $res = imagejpeg($background, $imagePath);
- if (false === $res) {
- return false;
- }
-
- // 释放内存
- imagedestroy($background);
-
- return $imagePath;
- }
复制代码
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|