PHP 图片添加文字水印类

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类。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程