php给网页加水印_PHP 给上传到网页的图片添加水印(文字和图像)

首先构建一个添加文字水印的类:

class AddWaterPress{//定义类文件

function getExtendsName($fileName){//获取上传图片后缀

return strtolower(strstr($fileName, "."));//返回图片后缀

}

function getImageRes($extendsName, $imageUrl){//根据上传图片的后缀,和上传文件的路径新建图像

switch($extendsName){//根据上传图片的后缀进行判断

case '.gif'://如果后缀为gif

$img =imagecreatefromgif($imageUrl);//则根据路径创建一个GIF图像

break;

case '.jpg'://如果后缀为jpg

$img =imagecreatefromjpeg($imageUrl);//则根据路径创建一个JPG图像

break;

case '.png':

$img =imagecreatefrompng($imageUrl);

break;

case '.bmp':

$img =imagecreatefromwbmp($imageUrl);

break;

}

return $img;//返回创建图像的标识

}

function add($imageUrl, $watherImageUrl){//定义添加方法

$img = @$this->getImageRes($this->getExtendsName($imageUrl), $imageUrl);//获取被操作的图像标识

$textcolor=imagecolorallocate($img,0,0,0); //设置字体颜色为蓝色,值为RGB颜色值

//imagestring($img, 20, 30, 100, "$watherImageUrl", $textcolor);

$fnt="c:/windows/fonts/simhei.ttf"; //定义字体

$text =iconv("gb2312", "utf-8", $watherImageUrl); //将中文转换为UTF-8格式

imagettftext($img,20,0,30,100,$textcolor,$fnt,$text); //写TTF文字到图中

//根据图像标识符、后缀和路径,执行outputImage方法,输出图像

$this->outputImage($img, $this->getExtendsName($imageUrl), $imageUrl);

imagedestroy($img); //销毁图像

}

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;

case '.bmp':

imagewbmp($img, $imageUrl);

break;

}

}

}

也可以构建一个添加指定图像到上传图像上,类为:

class AddWaterPress{//定义类文件

function getExtendsName($fileName){//获取上传图片后缀

return strtolower(strstr($fileName, "."));//返回图片后缀

}

function getImageRes($extendsName, $imageUrl){//根据上传图片的后缀,和上传文件的路径新建图像

switch($extendsName){//根据上传图片的后缀进行判断

case '.gif'://如果后缀为gif

$img =imagecreatefromgif($imageUrl);//则根据路径创建一个GIF图像

break;

case '.jpg'://如果后缀为jpg

$img =imagecreatefromjpeg($imageUrl);//则根据路径创建一个JPG图像

break;

case '.png':

$img =imagecreatefrompng($imageUrl);

break;

case '.bmp':

$img =imagecreatefromwbmp($imageUrl);

break;

}

return $img;//返回创建图像的标识

}

function add($imageUrl, $watherImageUrl, $x, $y){//定义添加方法

$img = @$this->getImageRes($this->getExtendsName($imageUrl), $imageUrl);//获取被添加的图像标识

$img1 = @$this->getImageRes($this->getExtendsName($watherImageUrl), $watherImageUrl); //获取指定的水印图片的图像标识

$size = getimagesize($imageUrl);//获取图像大小

$size1 = getimagesize($watherImageUrl);//获取水印图片的大小

if($x==null && $y==null){//判断参数是否为空

$x1 = ($size[0]-$size1[0])/2;//根据图像大小数组中返回的值,计算图像的横坐标

$y1 = ($size[1]-$size1[1])/2;//根据图像大小数组中返回的值,计算图像的纵坐标

}else{

$x1 = $x;//如果不为空,则直接使用坐标数据

$y1 = $y;//如果不为空,则直接使用坐标数据

}

imagecopy($img, $img1, $x1, $y1, 0, 0, $size1[0], $size1[1]);//将img1的一部分拷贝到img的指定位置

//根据图像标识符、后缀和路径,执行outputImage方法,输出图像

$this->outputImage($img, $this->getExtendsName($imageUrl), $imageUrl);

imagedestroy($img1); //销毁图像

imagedestroy($img); //销毁图像

}

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;

case '.bmp':

imagewbmp($img, $imageUrl);

break;

}

}

}

下面是主文件:

上传图片添加水印
   
 

上传图片:

 
   
bg(2).jpg
waterpress.jpg 
  
bg.jpg

if ($_FILES["file"]["name"]!="" && $_POST['flag']=='1'){//判断提交内容是否为空

$type = strstr($_FILES["file"]["name"], '.');//获取上传图片后缀

if($_FILES["file"]["name"]==''){//判断上传图片名称是否为空

echo "";

exit();

}else if(!($type=='.gif' || $type == '.png' || $type == '.bmp' || $type == '.jpg')){//判断上传图片格式是否正确

echo "";

exit();

}

function getUpfileName($fileName){//定义上传文件在服务器中存储的名称

return 'waterpress'.strstr($fileName, ".");//使用固定名称(也可以通过时间戳、随机数定义)

}

if(!is_dir('upfiles')){//判断上传文件存储文件夹是否存在

mkdir('upfiles');//如果不存在,则创建文件夹

}

$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, "WWW.MRBCCD.CN");//执行添加方法,传递参数,指定水印文字

echo "";

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值