PHP 图片添加文字水印类——封装添加文字水印方法,AddWaterPress类对图像处理函数进行了封装,定义getExtendsName()方法,获取上传图片的文件后缀;定义getImageRes()方法,根据上传文件的后缀创建新图像;定义outputImage()方法,输出图像;定义add()方法,向指定的图片中添加文字水印。从而使向图片中添加文字水印的操作变得更加简单。
PHP 图片添加文字水印类 语法
/*********************************************
* @ 说明:图片添加文字水印类
*******************************/
class AddWaterPress{ //定义类文件
function getExtendsName(fileName){ //获取上传图片后缀
return strtolower(strstr(fileName, ".")); //返回图片后缀
}
function getImageRes(extendsName,imageUrl){
//根据上传图片的后缀和上传文件的路径新建图像
switch(extendsName){ //根据上传图片的后缀进行判断
case '.gif': //如果后缀为gifimg =imagecreatefromgif(imageUrl); //则根据路径创建一个GIF 图像
break;
case '.jpg': //如果后缀为jpgimg =imagecreatefromjpeg(imageUrl); //则根据路径创建一个JPG 图像
break;
case '.png':img =imagecreatefrompng(imageUrl);
break;
}
returnimg; //返回创建图像的标识
}
function outputImage(img,extendsName, imageUrl){
//根据图像标识、图片后缀和路径输出图像
switch(extendsName){ //判断图像后缀
case '.gif': //如果后缀为gif
imagegif(img,imageUrl); //则输出img 图像
break;
case '.jpg':
imagejpeg(img,imageUrl);
break;
case '.png':
imagepng(img,imageUrl);
break;
}
}
function add(imageUrl,watherImageUrl){ //定义添加方法
img = @this->getImageRes(this->getExtendsName(imageUrl), imageUrl);
//获取被操作的图像标识textcolor=imagecolorallocate(img,190,1,23); //设置字体颜色为蓝色,值为RGB 颜色值
//imagestring(img, 20, 30, 100, "watherImageUrl",textcolor);
//写入英文字符串
font="Font/FZHCJW.TTF"; //定义字体
imagettftext(img,15,56,20,130,textcolor,font,watherImageUrl);
//写TTF 文字到图中
//根据图像标识符、后缀和路径,执行outputImage 方法,输出图像this->outputImage(img,this->getExtendsName(imageUrl),imageUrl);
imagedestroy($img); //销毁图像
}
}
PHP 图片添加文字水印类 示例
在本实例中讲解如何在上传图片的过程中为图片添加水印文字。
其关键步骤如下:
(1)创建index.php文件。首先,创建一个表单,完成上传图片的提交操作。然后,在本页中输出存储在服务器指定文件夹下的图片。最后,获取表单中提交的图片数据,应用move_uploaded_file()函数完成图片的上传操作,并且实例化存储在AddWaterPress.php文件中的AddWaterPress类,调用add()方法为指定的图片添加文字水印。其关键代码如下:
<?php
if (isset(_FILES["file"]["name"])&& isset(_POST['flag'])){ //判断提交内容是否为空
type = strstr(_FILES["file"]["name"], '.'); //获取上传图片后缀
if(_FILES["file"]["name"]==''){ //判断上传图片名称是否为空
echo "<script>alert('图片不能为空!');</script>";
exit();
}else if(!(type == '.jpg')){ //判断上传图片格式是否正确
echo "<script>alert('图片格式不正确!');</script>";
exit();
}
function getUpfileName(fileName){ //定义上传文件在服务器中存储的名称
return 'waterpress'.strstr(fileName, ".");
//使用固定名称(也可以通过时间戳、随机数定义)
}
saveDir = "upfiles/" . getUpfileName(_FILES["file"]["name"]);
//定义上传文件存储路径
if(move_uploaded_file(_FILES["file"]["tmp_name"],saveDir)){
//执行文件上传操作
require_once 'AddWaterPress.php'; //包含添加水印操作的文件
addWaterPress = new AddWaterPress(); //类的实例化addWaterPress->add($saveDir, "吉林省明日科技");
//执行添加方法,传递参数,指定水印文字
echo "<script>alert('图片添加成功');</script>";
}
}
?>
(2)创建AddWaterPress.php文件,编写AddWaterPress类。