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':                              //如果后缀为gif
                $img =imagecreatefromgif($imageUrl); //则根据路径创建一个GIF 图像
                  break;
           case '.jpg':                              //如果后缀为jpg
               $img =imagecreatefromjpeg($imageUrl); //则根据路径创建一个JPG 图像
                   break;
           case '.png':
               $img =imagecreatefrompng($imageUrl);
                   break;
     }
         return $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;
       }
     }
     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类。

赞(0)
未经允许不得转载:极客笔记 » PHP 图片添加文字水印类
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址