您当前的位置: 首页 > 网站编程 > PHP教程 > PHP给图片加水印实例代码

PHP给图片加水印实例代码

作者:不详 来源:网络 发布时间: 2014-07-30 10:10 点击:
PHP给图片加水印实例代码: 这也是一个比较常用的功能,用PHP给上传图片加水印的程序,是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring(),或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个

PHP给图片加水印实例代码

  PHP给图片加水印实例代码:

  这也是一个比较常用的功能,用PHP给上传图片加水印的程序,是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring(),或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面。主要运用了PHP的GD库。

  

  

  

  

  

  

  
参数说明: 

  $max_file_size : 上传文件大小限制, 单位BYTE 

  $destination_folder : 上传文件路径 

  $watermark : 是否附加水印(1为加水印,其他为不加水印); 

  使用说明: 

  1. 将PHP.ini文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库; 

  2. 将extension_dir =改为你的php_gd2.dll所在目录; 

  3. http://www.knowsky.com/php.asp; 

  ****************************************************/ 

  //上传文件类型列表 

  $uptypes=array( 

  ’image/jpg’, 

  ’image/jpeg’, 

  ’image/png’, 

  ’image/pjpeg’, 

  ’image/gif’, 

  ’image/bmp’, 

  ’image/x-png’ 

  ); 

  $max_file_size=2000000; //上传文件大小限制, 单位BYTE 

  $destination_folder="uploadimg/"; //上传文件路径 

  $watermark=1; //是否附加水印(1为加水印,其他为不加水印); 

  $watertype=1; //水印类型(1为文字,2为图片) 

  $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); 

  $waterstring="http://www.xplore.cn/"; //水印字符串 

  $waterimg="xplore.gif"; //水印图片 

  $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); 

  $imgpreviewsize=1/2; //缩略图比例 

  ?> 

  <html> 

  <head> 

  <title>ZwelL图片上传程序</title> 

  <style type="text/css"> 

  <!-- 

  body 

  { 

       font-size: 9pt; 

  } 

  input 

  { 

       background-color: #66CCFF; 

       border: 1px inset #CCCCCC; 

  } 

  --> 

  </style> 

  </head> 

  <body> 

  <form enctype="multipart/form-data" method="post" name="upform"> 

    上传文件: 

    <input name="upfile" type="file"> 

    <input type="submit" value="上传"><br> 

    允许上传的文件类型为:<?=implode(’, ’,$uptypes)?> 

  </form> 

  <?php 

  if ($_SERVER[’REQUEST_METHOD’] == ’POST’) 

  { 

      if (!is_uploaded_file($_FILES["upfile"][tmp_name])) 

      //是否存在文件 

      { 

           echo "图片不存在!"; 

           exit; 

      } 

      $file = $_FILES["upfile"]; 

      if($max_file_size < $file["size"]) 

      //检查文件大小 

      { 

          echo "文件太大!"; 

          exit; 

      } 

      if(!in_array($file["type"], $uptypes)) 

      //检查文件类型 

      { 

          echo "文件类型不符!".$file["type"]; 

          exit; 

      } 

      if(!file_exists($destination_folder)) 

      { 

          mkdir($destination_folder); 

      } 

      $filename=$file["tmp_name"]; 

      $image_size = getimagesize($filename); 

      $pinfo=pathinfo($file["name"]); 

      $ftype=$pinfo[’extension’]; 

      $destination = $destination_folder.time().".".$ftype; 

      if (file_exists($destination) && $overwrite != true) 

      { 

          echo "同名文件已经存在了"; 

          exit; 

      } 

      if(!move_uploaded_file ($filename, $destination)) 

      { 

          echo "移动文件出错"; 

          exit; 

      } 

      $pinfo=pathinfo($destination); 

      $fname=$pinfo[basename]; 

      echo " <font color=red>已经成功上传</font><br>文件名:  

  <font color=blue>".$destination_folder.$fname."</font><br>"; 

      echo " 宽度:".$image_size[0]; 

      echo " 长度:".$image_size[1]; 

      echo "<br> 大小:".$file["size"]." bytes"; 

      if($watermark==1) 

      { 

          $iinfo=getimagesize($destination,$iinfo); 

          $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 

          $white=imagecolorallocate($nimage,255,255,255); 

          $black=imagecolorallocate($nimage,0,0,0); 

          $red=imagecolorallocate($nimage,255,0,0); 

          imagefill($nimage,0,0,$white); 

          switch ($iinfo[2]) 

          { 

              case 1: 

              $simage =imagecreatefromgif($destination); 

              break; 

              case 2: 

              $simage =imagecreatefromjpeg($destination); 

              break; 

              case 3: 

              $simage =imagecreatefrompng($destination); 

              break; 

              case 6: 

              $simage =imagecreatefromwbmp($destination); 

              break; 

              default: 

              die("不支持的文件类型"); 

              exit; 

          } 

          imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 

          imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 

          switch($watertype) 

          { 

              case 1:   //加水印字符串 

              imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 

              break; 

              case 2:   //加水印图片 

              $simage1 =imagecreatefromgif("xplore.gif"); 

              imagecopy($nimage,$simage1,0,0,0,0,85,15); 

              imagedestroy($simage1); 

              break; 

          } 

          switch ($iinfo[2]) 

          { 

              case 1: 

              //imagegif($nimage, $destination); 

              imagejpeg($nimage, $destination); 

              break; 

              case 2: 

              imagejpeg($nimage, $destination); 

              break; 

              case 3: 

              imagepng($nimage, $destination); 

              break; 

              case 6: 

              imagewbmp($nimage, $destination); 

              //imagejpeg($nimage, $destination); 

              break; 

          } 

          //覆盖原上传文件 

          imagedestroy($nimage); 

          imagedestroy($simage); 

      } 

      if($imgpreview==1) 

      { 

      echo "<br>图片预览:<br>"; 

      echo "<ccid_file values="" width=".($image_size[0]*$imgpreviewsize)."

  height=".($image_size[1]*$imgpreviewsize);" 

      echo " alt="图片预览:r文件名:".$destination."r上传时间:" />"; 

      } 

  } 

  ?> 

  </body> 

  </html>
分享到:
本文"PHP给图片加水印实例代码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4