向图片任意位置添加logo
程序员文章站
2022-05-19 12:50:24
...
这个的原理是把logo‘画’图片的指定位置.
步骤如下:
1.获取图片和logo的基本信息
getimagesize
步骤如下:
1.获取图片和logo的基本信息
getimagesize
2.判断图片资源类型并创建对应图片资源
getPicType (自定义函数)
3.获取logo的位置坐标
getLocal (自定义函数)
4.把logo画上去
imagecopyresampled
5.输出图像
outputImage (自定义函数)
6.释放图片资源
imagedestroy
效果如图:
代码如下:
/**
* @function 向图像中添加logo
* @param $picname
* @param $logo
* @param int $local logo添加的位置:1:左上角,2:右上角,3:左下角,4:右下角,5:中上,6:中间,7:中下
* @param string $pre
* @return 返回一个新的图片名
*/functionaddLogo($picname,$logo,$local="1",$pre="l_")
{$picInfo = getimagesize($picname); //获取图片的基本信息$logoInfo = getimagesize($logo); //获取logo的基本信息$picW = $picInfo[0];//获取pic宽度$picH = $picInfo[1];//获取pic高度$logoW = $logoInfo[0]; //获取logo宽度$logoH = $logoInfo[1]; //获取logo高度//获取图片资源类型并创建对应图片资源$picim = getPicType($picInfo[2],$picname);
$logoim = getPicType($logoInfo[2],$logo);
//把logo画上去$XY = getLocal($local,$picW,$picH,$logoW,$logoH);//获取logo的位置坐标
imagecopyresampled($picim,$logoim,$XY[0],$XY[1],0,0,$logoW,$logoH,$logoW,$logoH);
//输出图像$newPicName = outputImage($picname,$pre,$picim);
//释放图片资源
imagedestroy($picim);
imagedestroy($logoim);
return$newPicName;
}
/**
* @function 获取对应位置的左上角坐标
* @param $local 位置
* @param $picW 图片宽
* @param $picH 图片高
* @param $logoW logo宽
* @param $logoH logo高
* @return 返回宽高数组
*/functiongetLocal($local,$picW,$picH,$logoW,$logoH)
{$XY = array();
switch($local)
{
case1:
$XY = array(0,0);
break;
case2:
$XY = array($picW-$logoW,0);
break;
case3:
$XY = array(0,$picH-$logoH);
break;
case4:
$XY = array($picW-$logoW,$picH-$logoH);
break;
case5:
$XY = array($picW/2 - $logoW/2,0);
break;
case6:
$XY = array($picW/2 - $logoW/2,$picH/2 - $logoH/2);
break;
case7:
$XY = array($picW/2 - $logoW/2,$picH-$logoH);
break;
default:
die("不支持这个位置的logo添加");
break;
}
return$XY;
}
/**
* function 判断并返回图片的类型(以资源方式返回)
* @param int $type 图片类型
* @param string $picname 图片名字
* @return 返回对应图片资源
*/functiongetPicType($type,$picname)
{$im=null;
switch($type)
{
case1: //GIF$im = imagecreatefromgif($picname);
break;
case2: //JPG$im = imagecreatefromjpeg($picname);
break;
case3: //PNG$im = imagecreatefrompng($picname);
break;
case4: //BMP$im = imagecreatefromwbmp($picname);
break;
default:
die("不认识图片类型");
break;
}
return$im;
}
/**
* function 输出图像
* @param string $picname 图片名字
* @param string $pre 新图片名前缀
* @param resourse $nim 要输出的图像资源
* @return 返回新的图片名
*/functionoutputImage($picname,$pre,$nim)
{$info = getimagesize($picname);
$picInfo = pathInfo($picname);
$newPicName = $picInfo['dirname'].'/'.$pre.$picInfo['basename'];//输出文件的路径switch($info[2])
{
case1:
imagegif($nim,$newPicName);
break;
case2:
imagejpeg($nim,$newPicName);
break;
case3:
imagepng($nim,$newPicName);
break;
case4:
imagewbmp($nim,$newPicName);
break;
}
return$newPicName;
}
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了 向图片任意位置添加logo,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。