{
GenerateRandomImage
/** @varinteger图片宽度 */public$imgWidth=
272;/** @varinteger图片高度 */public$imgHeight=
162;/** @var根据type不同来生成不同的背景颜色,目前留个type分别为蓝色、紫色、黄色、绿色、灰色、土黄色 */public$type=
'';/** @var图片上要显示的文字 */public$text=
'';/** @varinteger图片上文字的字体大小 */public$fontSize=
16;publicfunction__construct($type,$text){
$this->type =
$type;$this->text =
$text;}
/** * 创建生成随机图片 * @author bignerd * @since 2017-03-21T14:49:41+0800 */publicfunctioncreateImg
(){
/** @var创建一个指定图片大小的空调色板 $image = imagecreate($this->imgWidth, $this->imgHeight); $rgb = $this->getBackground($this->type); /** @var为图片创建一个背景色 */$backgroundColor=
imagecolorallocate($image,$rgb['r'],$rgb['g'],$rgb['b']);/** @var创建文字白色字体 */$textColor=
imagecolorallocate($image,255,255,255);/** @var字体文件路径 */$font=
$_SERVER['DOCUMENT_ROOT'].
'/public/font/simhei.ttf';$x=
18;//文字起始位置x坐标$y=
50;//文字起始位置y坐标/** 文字写入图片 */$angle=
0;//角度0imagettftext($image,$this->fontSize
,$angle,$x,$y,$textColor,$font,$this->text
);/** @var水印图片路径**/$waterImgPath=
$this->randWaterImage
();/** @var获取图片信息,返回值$waterInfo[2]为图片类型常量 */$waterInfo=
getimagesize($waterImgPath);/** @var将图片类型常量转换为真正的类型,如png */$waterType=
image_type_to_extension($waterInfo[2],false);//获取文件类型$createImageFunc=
'imagecreatefrom'.
$waterType;/** @var创建一个水印图片的副本$createImageFunc为根据图片类型来动态生成预调用的创建图片函数*/$mask=
$createImageFunc($waterImgPath);$posX=
$this->imgWidth -
$waterInfo[0];//水印图片,在目标图片中的位置的x坐标$posY=
$this->imgHeight -
$waterInfo[1];//水印图片,在目标图片中的位置的y坐标/** http请求响应类型设置为 image/png 以便直接显示为图片 */header("Content-Type:image/png");/** 水印图片复制到创建的image */imagecopy($image,$mask,$posX,$posY,0,0,$waterInfo[0],$waterInfo[1]);imagepng($image);//输入图片到浏览器或者文件imagedestroy($image);//销毁图片}
/** * 图片背景颜色的rgb值 * @author bignerd * @since 2017-03-21T14:50:16+0800 */publicfunctiongetBackground
(){
$background=
['1'=>
['r'=>
0,'g'=>
160,'b'=>
233],'2'=>
['r'=>
198,'g'=>
0,'b'=>
110],'3'=>
['r'=>
237,'g'=>
109,'b'=>
0],'4'=>
['r'=>
33,'g'=>
148,'b'=>
75],'5'=>
['r'=>
63,'g'=>
58,'b'=>
57],'6'=>
['r'=>
202,'g'=>
162,'b'=>
101],];return$background[$this->type
];}
/** * 随机水印图片路径 * @author bignerd * @since 2017-03-21T14:51:00+0800 * @return 路径 */publicfunctionrandWaterImage
(){
$folder=
['1'=>
'product','2'=>
'team','3'=>
'architecture','4'=>
'developer','5'=>
'test','6'=>
'engineer'];$targetFolder=
$_SERVER['DOCUMENT_ROOT'].
'/public/images/role/'.
$folder[$this->type
].
'/'.
rand(1,38).
'.png';return$targetFolder;}
}
$image=
newGenerateRandomImage
(1,"扛得住的MySql数据架构");$image->createImg
();来源: http://www.cnblogs.com/skyfynn/p/6598366.html