自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為你講解PHP給圖片加水印的具體方法

開(kāi)發(fā) 后端
如何批量的,簡(jiǎn)便的將我們上傳的圖片附加上水印呢?今天我們就告訴大家一種方便的辦法,就是使用PHP給圖片加水印。

我們?cè)谧鼍W(wǎng)站的時(shí)候,都會(huì)遇到需要將網(wǎng)站上傳的圖片附加上水印,如果一個(gè)一個(gè)的手工加水印肯定非常麻煩,也是不實(shí)際的操作。那么,我們今天就向大家接受PHP給圖片加水印的具體方法,簡(jiǎn)化操作步驟。

#t#PHP給圖片加水印的具體代碼如下:

  1. <?php   
  2. /******************************************************************************   
  3.  
  4. 參數(shù)說(shuō)明:   
  5. $max_file_size  : 上傳文件大小限制, 單位BYTE   
  6. $destination_folder : 上傳文件路徑   
  7. $watermark   : 是否附加水印(1為加水印,其他為不加水印);   
  8.  
  9. 使用說(shuō)明:   
  10. 1. 將PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;號(hào)去掉,因?yàn)槲覀円玫紾D庫(kù);   
  11. 2. 將extension_dir =改為你的php_gd2.dll所在目錄;   
  12. ******************************************************************************/   
  13.  
  14. //上傳文件類型列表   
  15. $uptypes=array(   
  16.     'image/jpg',   
  17.     'image/jpeg',   
  18.     'image/png',   
  19.     'image/pjpeg',   
  20.     'image/gif',   
  21.     'image/bmp',   
  22.     'image/x-png'   
  23. );   
  24.  
  25. $max_file_size=2000000;     //上傳文件大小限制, 單位BYTE   
  26. $destination_folder="uploadimg/"; //上傳文件路徑   
  27. $watermark=1;      //是否附加水印(1為加水印,其他為不加水印);   
  28. $watertype=1;      //水印類型(1為文字,2為圖片)   
  29. $waterposition=1;     //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);   
  30. $waterstring="http://www.xplore.cn/";  //水印字符串   
  31. $waterimg="xplore.gif";    //水印圖片   
  32. $imgpreview=1;      //是否生成預(yù)覽圖(1為生成,其他為不生成);   
  33. $imgpreviewsize=1/2;    //縮略圖比例   
  34. ?>   
  35. <html>   
  36. <head>   
  37. <title>ZwelL圖片上傳程序</title>   
  38. <style type="text/css">   
  39. <!--   
  40. body   
  41. {   
  42.      font-size: 9pt;   
  43. }   
  44. input   
  45. {   
  46.      background-color: #66CCFF;   
  47.      border: 1px inset #CCCCCC;   
  48. }   
  49. -->   
  50. </style>   
  51. </head>   
  52.  
  53. <body>   
  54. <form enctype="multipart/form-data" method="post" name="upform">   
  55.   上傳文件:   
  56.   <input name="upfile" type="file">   
  57.   <input type="submit" value="上傳"><br>   
  58.   允許上傳的文件類型為:<?=implode(', ',$uptypes)?>   
  59. </form>   
  60.  
  61. <?php   
  62. if ($_SERVER['REQUEST_METHOD'] == 'POST')   
  63. {   
  64.     if (!is_uploaded_file($_FILES["upfile"][tmp_name]))   
  65.     //是否存在文件   
  66.     {   
  67.          echo "圖片不存在!";   
  68.          exit;   
  69.     }   
  70.  
  71.     $file = $_FILES["upfile"];   
  72.     if($max_file_size < $file["size"])   
  73.     //檢查文件大小   
  74.     {   
  75.         echo "文件太大!";   
  76.         exit;   
  77.     }   
  78.  
  79.     if(!in_array($file["type"], $uptypes))   
  80.     //檢查文件類型   
  81.     {   
  82.         echo "文件類型不符!".$file["type"];   
  83.         exit;   
  84.     }   
  85.  
  86.     if(!file_exists($destination_folder))   
  87.     {   
  88.         mkdir($destination_folder);   
  89.     }   
  90.  
  91.     $filename=$file["tmp_name"];   
  92.     $image_size = getimagesize($filename);   
  93.     $pinfo=pathinfo($file["name"]);   
  94.     $ftype=$pinfo['extension'];   
  95.     $destination = $destination_folder.time().".".$ftype;   
  96.     if (file_exists($destination) && $overwrite != true)   
  97.     {   
  98.         echo "同名文件已經(jīng)存在了";   
  99.         exit;   
  100.     }   
  101.  
  102.     if(!move_uploaded_file ($filename, $destination))   
  103.     {   
  104.         echo "移動(dòng)文件出錯(cuò)";   
  105.         exit;   
  106.     }   
  107.  
  108.     $pinfo=pathinfo($destination);   
  109.     $fname=$pinfo[basename];   
  110.     echo " <font color=red>已經(jīng)成功上傳</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>";   
  111.     echo " 寬度:".$image_size[0];   
  112.     echo " 長(zhǎng)度:".$image_size[1];   
  113.     echo "<br> 大小:".$file["size"]." bytes";   
  114.  
  115.     if($watermark==1)   
  116.     {   
  117.         $iinfo=getimagesize($destination,$iinfo);   
  118.         $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);   
  119.         $white=imagecolorallocate($nimage,255,255,255);   
  120.         $black=imagecolorallocate($nimage,0,0,0);   
  121.         $red=imagecolorallocate($nimage,255,0,0);   
  122.         imagefill($nimage,0,0,$white);   
  123.         switch ($iinfo[2])   
  124.         {   
  125.             case 1:   
  126.             $simage =imagecreatefromgif($destination);   
  127.             break;   
  128.             case 2:   
  129.             $simage =imagecreatefromjpeg($destination);   
  130.             break;   
  131.             case 3:   
  132.             $simage =imagecreatefrompng($destination);   
  133.             break;   
  134.             case 6:   
  135.             $simage =imagecreatefromwbmp($destination);   
  136.             break;   
  137.             default:   
  138.             die("不支持的文件類型";   
  139.             exit;   
  140.         }   
  141.  
  142.         imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);   
  143.         imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);   
  144.  
  145.         switch($watertype)   
  146.         {   
  147.             case 1:   //加水印字符串   
  148.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);   
  149.             break;   
  150.             case 2:   //加水印圖片   
  151.             $simage1 =imagecreatefromgif("xplore.gif";   
  152.             imagecopy($nimage,$simage1,0,0,0,0,85,15);   
  153.             imagedestroy($simage1);   
  154.             break;   
  155.         }   
  156.  
  157.         switch ($iinfo[2])   
  158.         {   
  159.             case 1:   
  160.             //imagegif($nimage, $destination);   
  161.             imagejpeg($nimage, $destination);   
  162.             break;   
  163.             case 2:   
  164.             imagejpeg($nimage, $destination);   
  165.             break;   
  166.             case 3:   
  167.             imagepng($nimage, $destination);   
  168.             break;   
  169.             case 6:   
  170.             imagewbmp($nimage, $destination);   
  171.             //imagejpeg($nimage, $destination);   
  172.             break;   
  173.         }   
  174.  
  175.         //覆蓋原上傳文件   
  176.         imagedestroy($nimage);   
  177.         imagedestroy($simage);   
  178.     }   
  179.  
  180.     if($imgpreview==1)   
  181.     {   
  182.     echo "<br>圖片預(yù)覽:<br>";   
  183.     echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);   
  184.     echo " alt=\"圖片預(yù)覽:\r文件名:".$destination."\r上傳時(shí)間:\">";   
  185.     }   
  186. }   
  187. ?>   
  188. </body>   
  189. </html>  

以上就是我們?yōu)榇蠹曳钌系腜HP給圖片加水印的具體代碼,希望對(duì)又需要的朋友有所幫助。

責(zé)任編輯:曹凱 來(lái)源: CSDN
相關(guān)推薦

2009-12-07 15:41:51

PHP圖片加水印

2024-08-01 08:37:46

vue圖片性能

2009-05-06 14:03:13

SQL Server日志log

2009-12-25 16:52:57

網(wǎng)絡(luò)接入控制

2009-12-03 18:23:23

2009-11-23 15:10:28

PHP獲取當(dāng)前url

2009-12-01 09:52:40

PHP過(guò)濾字符串

2009-11-30 11:24:49

PHP將EXCEL導(dǎo)入

2009-11-25 17:14:45

PHP安裝為Apach

2009-12-03 17:57:35

PHP重定向代碼

2010-07-21 14:33:01

刪除telnet

2009-11-24 17:25:00

PHP二維數(shù)組排序

2009-11-24 20:09:35

PHP函數(shù)header

2010-08-17 13:12:06

無(wú)線路由器加密

2009-12-08 16:48:41

無(wú)線路由器

2010-08-23 14:05:11

2009-12-01 15:12:34

路由器配置VLAN

2022-05-04 18:26:25

PDF水印Python

2024-01-09 16:02:44

Python開(kāi)源庫(kù)

2016-09-06 21:09:35

Phpgd庫(kù)圖片水印
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)