/**
* 图片水印铺满
* param $path string 图片路径
* param $file_name string 图片名称
* param $font string 字体路径
* param $water_text string 水印文字
* param $over_flag bool true 覆盖 false 不覆盖创建一个新的图片
* param $water_w int 文字水印的宽度
* param $water_h int 文字水印的高度
* param $angle int 水印文字倾斜角度
* param $font_size int 水印文字大小
*/
function createImgWater($path, $file_name, $font, $water_text='水印00000000000001', $over_flag=false, $font_size=10, $water_w=300,$water_h=300, $angle=-45) {
ob_start();
//检查文件和水印
if ($file_name == "" || $water_text == "") return array('code'=>201, 'msg'=>'文件名为空或者水印为空!');
//检测是否安装GD库
if (false == function_exists("gd_info")) return array('code'=>201, 'msg'=>'"系统没有安装GD库,不能给图片加水印!');
//设置输入、输出图片路径名
$resourceImg = $path.$file_name; //输入的源文件
$resImg = $resourceImg; //输出的目标文件
if (!$over_flag) {
$arr_in_name = explode(".", $file_name);
$resImg = $path . $arr_in_name[0]."_water_text.".$arr_in_name[1];
}
//检测图片是否存在
if (!file_exists($resourceImg)) return array('code'=>201, 'msg'=>'"图片不存在!');
$info = getimagesize($resourceImg);
//通过编号获取图像类型
$type = image_type_to_extension($info[2],false);
//在内存中创建和图像类型一样的图像
$fun = "imagecreatefrom".$type;
//图片复制到内存
$image = $fun($resourceImg);
//设置字体颜色和透明度
$color = imagecolorallocatealpha($image, 255, 255, 255, 50);
$x_length = $info[0];
$y_length = $info[1];
//铺满屏幕
for ($x = 0; $x < $x_length; $x) {
for ($y = 0; $y < $y_length; $y) {
imagettftext($image, $font_size, $angle, $x, $y, $color, $font, $water_text);
$y += $water_h;
}
$x += $water_w;
}
//浏览器输出 保存图片的时候 需要去掉
//header("Content-type:".$info['mime']);
$fun = "image".$type;
$fun($image);
//保存图片
$fun($image, $resImg);
//销毁图片
imagedestroy($image);
ob_end_clean(); //清理内存中的图片输出(必须)
return array('code'=>200, 'msg'=>'"成功', 'image'=>$resImg);
}