亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php中png透明背景水印程序代碼

2024-09-04 11:44:31
字體:
來源:轉載
供稿:網友

給圖片加水印是php程序中一個常用的并且很實用的功能,下面我來給大家詳細介紹php中png透明背景水印程序代碼吧,代碼如下:

  1. //原始圖像 
  2.  
  3. $dst = "/upload/20120914/20120914040740-0.jpg"//注意圖片路徑要正確 
  4.  
  5. //得到原始圖片信息 
  6.  
  7. $dst_info = getimagesize($dst);  
  8.  
  9. switch ($dst_info[2]) 
  10.  
  11.  
  12. case 1: 
  13.  
  14. $dst_im =imagecreatefromgif($dst);break
  15.  
  16. case 2: 
  17.  
  18. $dst_im =imagecreatefromjpeg($dst);break
  19.  
  20. case 3: 
  21.  
  22. $dst_im =imagecreatefrompng($dst);break
  23.  
  24. case 6: 
  25.  
  26. $dst_im =imagecreatefromwbmp($dst);break
  27.  
  28. default
  29.  
  30. die("不支持的文件類型1");exit
  31.  
  32.  
  33. //水印圖像 
  34.  
  35. $src = "/images/shuiyin.png"//注意路徑要寫對 
  36.  
  37. $src_info = getimagesize($src); 
  38.  
  39. switch ($src_info[2]) 
  40.  
  41.  
  42. case 1: 
  43.  
  44. $src_im =imagecreatefromgif($src);break
  45.  
  46. case 2: 
  47.  
  48. $src_im =imagecreatefromjpeg($src);break
  49.  
  50. case 3: 
  51.  
  52. $src_im =imagecreatefrompng($src);break
  53.  
  54. case 6: 
  55.  
  56. $src_im =imagecreatefromwbmp($src);break
  57.  
  58. default
  59.  
  60. die("不支持的文件類型1");exit
  61.  
  62.  
  63.  
  64.  
  65. //半透明格式水印 
  66.  
  67. //$alpha = 50;//水印透明度 
  68.  
  69. //imagecopymerge($dst_im,$src_im,$dst_info[0]-$src_info[0]-10,$dst_info[1]-$src_info[1]- 
  70.  
  71. 10,0,0,$src_info[0],$src_info[1],$alpha); 
  72.  
  73.  
  74.  
  75. //支持png本身透明度的方式 
  76.  
  77. imagecopy($dst_im,$src_im,$dst_info[0]-$src_info[0]-10,$dst_info[1]-$src_info[1]-10,0,0,$src_info 
  78.  
  79. [0],$src_info[1]); 
  80.  
  81.  
  82.  
  83. //保存圖片 
  84.  
  85. switch ($dst_info[2]){ 
  86.  
  87. case 1: 
  88.  
  89. imagegif($dst_im,$dst);break
  90.  
  91. case 2: 
  92.  
  93. imagejpeg($dst_im,$dst);break
  94.  
  95. case 3: 
  96.  
  97. imagepng($dst_im,$dst);break
  98. //開源代碼Vevb.com 
  99. case 6: 
  100.  
  101. imagewbmp($dst_im,$dst);break
  102.  
  103. default
  104.  
  105. die("不支持的文件類型2");exit
  106.  
  107.  
  108. imagedestroy($dst_im); 
  109.  
  110. imagedestroy($src_im);  

給一個標準的圖片水印類,代碼如下:

  1. /*  
  2. * 功能:PHP圖片水印 (水印支持圖片或文字)  
  3. * 參數:  
  4. *      $product_img    背景圖片,即需要加水印的圖片,暫只支持GIF,JPG,PNG格式;  
  5. *      $waterPos        水印位置,有10種狀態,0為隨機位置;  
  6. *                        1為頂端居左,2為頂端居中,3為頂端居右;  
  7. *                        4為中部居左,5為中部居中,6為中部居右;  
  8. *                        7為底端居左,8為底端居中,9為底端居右;  
  9. *      $waterImage        圖片水印,即作為水印的圖片,暫只支持GIF,JPG,PNG格式;  
  10. *      $waterText        文字水印,即把文字作為為水印,支持ASCII碼,不支持中文;  
  11. *      $textFont        文字大小,值為1、2、3、4或5,默認為5;  
  12. *      $textColor        文字顏色,值為十六進制顏色值,默認為#FF0000(紅色);  
  13.  
  14. * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG  
  15. *      $waterImage 和 $waterText 最好不要同時使用,選其中之一即可,優先使用 $waterImage。  
  16. *      當$waterImage有效時,參數$waterString、$stringFont、$stringColor均不生效。  
  17. *      加水印后的圖片的文件名和 $product_img 一樣。  
  18. * 作者:longware @ 2004-11-3 14:15:13  
  19. */  
  20. function imageWaterMark 
  21.  
  22. ($product_img,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")  
  23. {  
  24.     $isWaterImage = FALSE;  
  25.     $formatMsg = "暫不支持該文件格式,請用圖片處理軟件將圖片轉換為GIF、JPG、PNG格式。";  
  26.     //讀取水印文件  
  27.     if(!emptyempty($waterImage) && file_exists($waterImage))  
  28.     {  
  29.         $isWaterImage = TRUE;  
  30.         $water_info = getimagesize($waterImage);  
  31.         $water_w    = $water_info[0];//取得水印圖片的寬  
  32.         $water_h    = $water_info[1];//取得水印圖片的高  
  33.         switch($water_info[2])//取得水印圖片的格式  
  34.         {  
  35.             case 1water_im = imagecreatefromgif($waterImage);break;  
  36.             case 2water_im = imagecreatefromjpeg($waterImage);break;  
  37.             case 3water_im = imagecreatefrompng($waterImage);break;  
  38.             default:die($formatMsg);  
  39.         }  
  40.     }  
  41.     //讀取背景圖片  
  42.     if(!emptyempty($product_img) && file_exists($product_img))  
  43.     {  
  44.         $ground_info = getimagesize($product_img);  
  45.         $ground_w    = $ground_info[0];//取得背景圖片的寬  
  46.         $ground_h    = $ground_info[1];//取得背景圖片的高  
  47.         switch($ground_info[2])//取得背景圖片的格式  
  48.         {  
  49.             case 1:$ground_im = imagecreatefromgif($product_img);break;  
  50.             case 2:$ground_im = imagecreatefromjpeg($product_img);break;  
  51.             case 3:$ground_im = imagecreatefrompng($product_img);break;  
  52.             default:die($formatMsg);  
  53.         }  
  54.     }  
  55.     else  
  56.     {  
  57.         die("需要加水印的圖片不存在!");  
  58.     }  
  59.     //水印位置  
  60.     if($isWaterImage)//圖片水印  
  61.     {  
  62.         $w = $water_w;  
  63.         $h = $water_h;  
  64.         $label = "圖片的";  
  65.     }  
  66.     else//文字水印  
  67.     {  
  68.         $temp = imagettfbbox(ceil($textFont*2.5),0,"arial.ttf",$waterText);//取得使用 TrueType 字體的文 
  69.  
  70. 本的范圍  
  71.         $w = $temp[2] - $temp[6];  
  72.         $h = $temp[3] - $temp[7];  
  73.         unset($temp);  
  74.         $label = "文字區域";  
  75.     }  
  76.     if( ($ground_w<$w) || ($ground_h<$h) )  
  77.     {  
  78.         echo "需要加水印的圖片的長度或寬度比水印".$label."還小,無法生成水??!";  
  79.         return;  
  80.     }  
  81.     switch($waterPos)  
  82.     {  
  83.         case 0://隨機  
  84.             $posX = rand(0,($ground_w - $w));  
  85.             $posY = rand(0,($ground_h - $h));  
  86.             break;  
  87.         case 1://1為頂端居左  
  88.             $posX = 0;  
  89.             $posY = 0;  
  90.             break;  
  91.         case 2://2為頂端居中  
  92.             $posX = ($ground_w - $w) / 2;  
  93.             $posY = 0;  
  94.             break;  
  95.         case 3://3為頂端居右  
  96.             $posX = $ground_w - $w;  
  97.             $posY = 0;  
  98.             break;  
  99.         case 4://4為中部居左  
  100.             $posX = 0;  
  101.             $posY = ($ground_h - $h) / 2;  
  102.             break;  
  103.         case 5://5為中部居中  
  104.             $posX = ($ground_w - $w) / 2;  
  105.             $posY = ($ground_h - $h) / 2;  
  106.             break;  
  107.         case 6://6為中部居右  
  108.             $posX = $ground_w - $w;  
  109.             $posY = ($ground_h - $h) / 2;  
  110.             break;  
  111.         case 7://7為底端居左  
  112.             $posX = 0;  
  113.             $posY = $ground_h - $h;  
  114.             break;  
  115.         case 8://8為底端居中  
  116.             $posX = ($ground_w - $w) / 2;  
  117.             $posY = $ground_h - $h;  
  118.             break;  
  119.         case 9://9為底端居右  
  120.             $posX = $ground_w - $w;  
  121.             $posY = $ground_h - $h;  
  122.             break;  
  123.         default://隨機  
  124.             $posX = rand(0,($ground_w - $w));  
  125.             $posY = rand(0,($ground_h - $h));  
  126.             break;      
  127.     }  
  128.     //設定圖像的混色模式  
  129.     imagealphablending($ground_im, true);  
  130.     if($isWaterImage)//圖片水印  
  131.     {  
  132.         imagecopy($ground_im$water_im$posX$posY, 0, 0, $water_w,$water_h);//拷貝水印到目標文件    
  133.  
  134.       
  135.     }  
  136.     else//文字水印  
  137.     {  
  138.         if( !emptyempty($textColor) && (strlen($textColor)==7) )  
  139.         {  
  140.             $R = hexdec(substr($textColor,1,2));  
  141.             $G = hexdec(substr($textColor,3,2));  
  142.             $B = hexdec(substr($textColor,5));  
  143.         }  
  144.         else  
  145.         {  
  146.             die("水印文字顏色格式不正確!");  
  147.         }  
  148.         imagestring ( $ground_im$textFont$posX$posY$waterText, imagecolorallocate($ground_im
  149.  
  150. $R$G$B));          
  151.     }  
  152.     //生成水印后的圖片  
  153.     @unlink($product_img);  
  154.     switch($ground_info[2])//取得背景圖片的格式  
  155.     {  
  156.         case 1:imagegif($ground_im,$product_img);break;  
  157.         case 2:imagejpeg($ground_im,$product_img);break;  
  158.         case 3:imagepng($ground_im,$product_img);break;  
  159.         default:die($errorMsg);  
  160.     }  
  161.     //釋放內存  
  162.     if(isset($water_info)) unset($water_info);  
  163.     if(isset($water_im)) imagedestroy($water_im);  
  164.     unset($ground_info);  
  165.     imagedestroy($ground_im);  
  166.  
  167. //---------------------------------------------------------------------------------------  
  168. if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0)  
  169. {  
  170.     $uploadfile = "./".time()."_".$_FILES['userfile']['name'];  
  171.     if (copy($_FILES['userfile']['tmp_name'], $uploadfile))  
  172.     {  
  173.         echo "OK<br>";  
  174.         //文字水印  
  175.         imageWaterMark($uploadfile,0,"",http://www.111cn.net,5,"#FF0000");  
  176.         //圖片水印  
  177.         //$waterImage="images/bz.gif";//水印圖片路徑  
  178.         //imageWaterMark($uploadfile,0,$waterImage);  
  179.         echo "<img src="".$uploadfile."" border="0">";  
  180.     }  
  181.     else  
  182.     {  
  183.         echo "Fail<br>";  
  184.     }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人网av| 日韩在线观看免费网站| 欧美大片免费观看在线观看网站推荐| 日韩精品视频在线观看网址| 欧美激情二区三区| 永久免费精品影视网站| 欧美中文在线视频| 亚洲综合小说区| 精品久久久免费| 日韩在线视频观看正片免费网站| 55夜色66夜色国产精品视频| 亚洲老头老太hd| 91网站在线免费观看| 国产精品青草久久久久福利99| 久久精品精品电影网| 国产精品高清免费在线观看| 亚洲国产精品va在线观看黑人| 亚洲成人av中文字幕| 中文日韩在线视频| 91chinesevideo永久地址| 6080yy精品一区二区三区| 欧美裸身视频免费观看| 欧美性猛交xxxx乱大交3| 97超碰蝌蚪网人人做人人爽| 久久久免费精品| 欧美日韩国产999| 中文字幕亚洲综合久久筱田步美| 欧美成人精品h版在线观看| 国产成人精品久久久| 日韩美女视频免费在线观看| 日韩电影第一页| 欧美大片在线免费观看| 亚洲最新视频在线| 国产午夜精品理论片a级探花| 日本精品久久久| 久久久亚洲天堂| 美女av一区二区| 成人精品aaaa网站| 日韩欧美一区视频| 久热国产精品视频| 午夜精品一区二区三区在线视频| 国产精品入口尤物| 欧美一级大胆视频| 亚洲人高潮女人毛茸茸| 国产精品一区二区久久久| 欧美精品久久久久久久久| 91av在线不卡| 国产欧美精品一区二区三区-老狼| 国产精品日韩在线一区| 亚洲女人天堂成人av在线| 欧美激情xxxxx| 国产亚洲视频中文字幕视频| 51ⅴ精品国产91久久久久久| 欧美大片第1页| 国产成人精品视频在线| 色综合久久88色综合天天看泰| 久久久久五月天| 97国产精品人人爽人人做| 国产精品香蕉av| 色诱女教师一区二区三区| 亚洲一区二区免费在线| 欧美黄色片免费观看| 91亚洲国产精品| 日本a级片电影一区二区| 成人黄色午夜影院| 欧美午夜美女看片| 美女精品视频一区| 主播福利视频一区| 亚洲电影成人av99爱色| 欧美激情一区二区三区成人| 日韩av大片免费看| 国产欧美在线视频| 国产欧美一区二区三区在线| 久久国产加勒比精品无码| 成人久久久久久| 久久伊人精品视频| 亚洲自拍小视频| 国产精品成人一区二区三区吃奶| 亚洲国产成人精品久久久国产成人一区| 中文字幕日韩精品在线观看| 中文字幕日本精品| 性欧美办公室18xxxxhd| 精品毛片三在线观看| 国产日韩综合一区二区性色av| 日本精品一区二区三区在线播放视频| 亚洲白拍色综合图区| 亚洲一区二区久久久久久| 欧美激情视频在线免费观看 欧美视频免费一| 成人精品久久久| 亚洲视频专区在线| 色综合天天综合网国产成人网| 国产一区二区三区在线视频| 国产在线视频2019最新视频| 亚洲国产成人精品电影| 亚洲人成啪啪网站| 欧美激情区在线播放| 亚洲free性xxxx护士hd| 欧美国产高跟鞋裸体秀xxxhd| 日本一区二区三区在线播放| 日韩av电影中文字幕| 久久免费视频网| 欧美在线视频导航| 欧美一级片一区| 欧美综合激情网| 成人午夜一级二级三级| 国产精品稀缺呦系列在线| 日韩在线精品视频| 久久99青青精品免费观看| 欧美精品一本久久男人的天堂| 亚洲一二在线观看| 日韩视频免费看| 亚洲男人的天堂网站| 欧美日韩成人在线观看| 精品亚洲一区二区三区| 国产精品免费网站| 亚洲欧美日韩图片| 97久久精品国产| 成人伊人精品色xxxx视频| 亚洲欧美日本另类| 亚洲国产成人精品女人久久久| 成人国产精品色哟哟| 日韩美女免费观看| 久久久视频免费观看| 日韩在线观看网址| 奇米4444一区二区三区| 国产视频精品免费播放| 成人欧美在线观看| 91高清视频免费| 国产深夜精品福利| 国产精品自产拍在线观看| 在线观看久久久久久| 日韩久久午夜影院| 欧美日韩精品二区| 亚洲性线免费观看视频成熟| 韩国精品美女www爽爽爽视频| 在线日韩精品视频| 日韩中文av在线| 中文字幕在线观看日韩| 亚洲成人精品视频| 亚洲国产精品网站| 国产一区二区三区中文| 欧美激情一级精品国产| 日韩毛片中文字幕| 国产精品午夜视频| 亚洲aⅴ日韩av电影在线观看| 欧美精品xxx| 91丝袜美腿美女视频网站| 色偷偷av一区二区三区| 亚洲精品日韩在线| 国产欧美婷婷中文| 国产成人av网址| 91精品久久久久久久久久入口| 92福利视频午夜1000合集在线观看| 欧美激情xxxx| 97精品视频在线观看| 日韩免费观看视频| 久久青草福利网站| 日韩精品视频免费在线观看| 国产成人aa精品一区在线播放| 日韩禁在线播放| 九九九久久久久久| 中文字幕久热精品在线视频| 97免费视频在线| 日韩欧美亚洲国产一区|