国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php上傳圖片加水印,圖片水印,文字水印

2024-09-04 11:44:23
字體:
供稿:網(wǎng)友

這是一款比較完整的在用戶上傳圖片時(shí)就自動(dòng)給圖片增加上水印,這款增加水印功能可以增加文字水印與圖片水印,實(shí)例代碼如下:

  1. /* 
  2.  * created on 2010-6-21 
  3.  * 
  4.  * the class for control image 
  5.  * 
  6.  * made by s71ence 
  7.  * 
  8.  * @$img_path 圖片路徑 
  9.  * @$is_auto_reduce 圖片是否自動(dòng)按照大小等級(jí)壓縮 1是 
  10.  * @$is_appoint 是否手動(dòng)進(jìn)行壓縮或放大 1是 
  11.  * @$multiple 手動(dòng)指定壓縮/放大比例 
  12.  * @$is_water_str 是否加水印文字 1是 
  13.  * @$water_str 水印文字 
  14.  * @$is_watermark 是否加水印圖片 1是 
  15.  * @$logo_path 水印圖片路徑 
  16.  * @$is_display 是否顯示圖片 1是 
  17.  * @$is_create 是否生成壓縮后的圖片 1是 
  18.  * 
  19.  * 注: 
  20.  * 1.生成新圖時(shí)不可顯示圖片,即$isdisplay和$iscreate不可同時(shí)置為1 
  21.  * 2.當(dāng)圖片寬或高小于1000時(shí),需手動(dòng)設(shè)置壓縮比例進(jìn)行壓縮 
  22.  * 3.不建議啟用水印,若要啟用,建議原圖片大小最好在1000以內(nèi) 
  23.  * 4.水印文字中不可含有中文 
  24.  * 5.新生成的圖片在原目錄文件中,支持n個(gè)層級(jí) 
  25.  */ 
  26.  
  27.  class image_control 
  28.  { 
  29.   private $img_path
  30.   private $is_auto_reduce
  31.   private $is_appoint
  32.   private $multiple
  33.   private $is_water_str
  34.   private $water_str
  35.   private $is_watermark
  36.   private $logo_path
  37.   private $is_display
  38.   private $is_create
  39.  
  40.   function __construct($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create
  41.   { 
  42.    $this->img_path=$img_path
  43.    $this->is_auto_reduce=$is_auto_reduce
  44.    $this->is_appoint=$is_appoint
  45.    $this->multiple=$multiple
  46.    $this->is_water_str=$is_water_str
  47.    $this->water_str=$water_str
  48.    $this->is_watermark=$is_watermark
  49.    $this->logo_path=$logo_path
  50.    $this->is_display=$is_display
  51.    $this->is_create=$is_create
  52.   } 
  53.  
  54.   function img_control() 
  55.   { 
  56.   //獲取原圖 
  57.   $img_info=getimagesize($this->img_path); 
  58.  
  59.   switch($img_info[2]) 
  60.   { 
  61.    case 1: 
  62.     $img_get=@imagecreatefromgif($this->img_path); 
  63.    break
  64.  
  65.    case 2: 
  66.     $img_get=@imagecreatefromjpeg($this->img_path); 
  67.    break
  68.  
  69.    case 3: 
  70.     $img_get=@imagecreatefrompng($this->img_path); 
  71.    break
  72.   } 
  73.  
  74.   //文字水印 
  75.   if($this->is_water_str==1) 
  76.   { 
  77.    //imagettftext(原圖,文字大小,文字旋轉(zhuǎn),水印起始坐標(biāo)x,水印起始坐標(biāo)y,$te,'simhei.ttf',$str); 
  78.    $te=imagecolorallocate($img_get,255,255,255); 
  79.    $str=iconv("gbk","utf-8",$this->water_str);//水印文字 
  80.    imagettftext($img_get,16,0,$img_info[0]-200,$img_info[1]-20,$te,'msyh.ttf',$str); 
  81.   } 
  82.  
  83.   //圖片水印 
  84.   if($this->is_watermark==1) 
  85.   { 
  86.    //水印圖片處理 
  87.    $logo_info=getimagesize($this->logo_path); 
  88.  
  89.    switch($logo_info[2]) 
  90.    { 
  91.     case 1: 
  92.      $logo=@imagecreatefromgif($this->logo_path); 
  93.     break
  94.  
  95.     case 2: 
  96.      $logo=@imagecreatefromjpeg($this->logo_path); 
  97.     break
  98.  
  99.     case 3: 
  100.      $logo=@imagecreatefrompng($this->logo_path); 
  101.     break
  102.    } 
  103.  
  104.    //水印logo圖片 
  105.    //函數(shù)說明:imagecopy(原圖,水印圖片,水印坐標(biāo)x,水印坐標(biāo)y,水印圖片開始坐標(biāo)x,水印圖片開始坐標(biāo)y,'水印圖片寬','水印圖片高'); 
  106.    imagecopy($img_get,$logo,0,0,0,0,$logo_info[0],$logo_info[1]); 
  107.   } 
  108.  
  109.   //自動(dòng)圖片壓縮 按圖片大小分級(jí)自動(dòng)壓縮 
  110.   //imagecopyresized(畫布,原圖,畫布起始x坐標(biāo),畫布起始y坐標(biāo),原圖起始x坐標(biāo),原圖起始x坐標(biāo),新圖片寬,新圖片高,原圖片寬,原圖片高); 
  111.   if($this->is_auto_reduce==1) 
  112.   { 
  113.    if($img_info[0]>=3000 || $img_info[1]>=3000) 
  114.    { 
  115.     $new_image_get=imagecreatetruecolor($img_info[0]*0.03,$img_info[1]*0.03);//生成畫布 
  116.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.03,$img_info[1]*0.03,$img_info[0],$img_info[1]); 
  117.    } 
  118.    else if($img_info[0]>=2500 || $img_info[1]>=2500) 
  119.    { 
  120.     $new_image_get=imagecreatetruecolor($img_info[0]*0.04,$img_info[1]*0.04); 
  121.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.04,$img_info[1]*0.04,$img_info[0],$img_info[1]); 
  122.    } 
  123.    else if($img_info[0]>=2000 || $img_info[1]>=2000) 
  124.    { 
  125.     $new_image_get=imagecreatetruecolor($img_info[0]*0.05,$img_info[1]*0.05); 
  126.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.05,$img_info[1]*0.05,$img_info[0],$img_info[1]); 
  127.    } 
  128.    else if($img_info[0]>=1500 || $img_info[1]>=1500) 
  129.    { 
  130.     $new_image_get=imagecreatetruecolor($img_info[0]*0.08,$img_info[1]*0.08); 
  131.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.08,$img_info[1]*0.08,$img_info[0],$img_info[1]); 
  132.    } 
  133.    else if($img_info[0]>=1000 || $img_info[1]>=1000) 
  134.    { 
  135.     $new_image_get=imagecreatetruecolor($img_info[0]*0.1,$img_info[1]*0.1); 
  136.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.1,$img_info[1]*0.1,$img_info[0],$img_info[1]); 
  137.    } 
  138.    else if($img_info[0]>=500 || $img_info[1]>=500) 
  139.    { 
  140.     $new_image_get=imagecreatetruecolor($img_info[0]*0.2,$img_info[1]*0.2); 
  141.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.2,$img_info[1]*0.2,$img_info[0],$img_info[1]); 
  142.    } 
  143.    else if($img_info[0]>=300 || $img_info[1]>=300) 
  144.    { 
  145.     $new_image_get=imagecreatetruecolor($img_info[0]*0.3,$img_info[1]*0.3); 
  146.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.3,$img_info[1]*0.3,$img_info[0],$img_info[1]); 
  147.    } 
  148.    else 
  149.    { 
  150.     $new_image_get=imagecreatetruecolor($img_info[0]*1,$img_info[1]*1); 
  151.     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*1,$img_info[1]*1,$img_info[0],$img_info[1]); 
  152.    } 
  153.   } 
  154.  
  155.   //手動(dòng)圖片壓縮 
  156.   //imagecopyresized(畫布,原圖,畫布起始x坐標(biāo),畫布起始y坐標(biāo),原圖起始x坐標(biāo),原圖起始x坐標(biāo),新圖片寬,新圖片高,原圖片寬,原圖片高); 
  157.   if($this->is_appoint) 
  158.   { 
  159.    $new_image_get=imagecreatetruecolor($img_info[0]*$this->multiple,$img_info[1]*$this->multiple);//生成畫布 
  160.    imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*$this->multiple,$img_info[1]*$this->multiple,$img_info[0],$img_info[1]); 
  161.   } 
  162.  
  163.   //圖像輸出 
  164.   if($this->is_display==1) 
  165.   { 
  166.    header("content-type: image/jpeg"); 
  167.    return imagejpeg($new_image_get); 
  168.   } 
  169.  
  170.   //新圖像生成 
  171.   if($this->is_create==1) 
  172.   { 
  173.    $new_name=explode("/",$this->img_path); 
  174.    $new_name_string=""
  175.  
  176.    for($i=0;$i<count($new_name)-1;$i++) 
  177.    { 
  178.     $new_name_string.=$new_name[$i]."/"
  179.    } 
  180.  
  181.    $new_img_path=$new_name_string."new".$new_name[$i]; 
  182.  
  183.    if(imagejpeg($new_image_get,$new_img_path) && imagejpeg($img_get,$this->img_path)) 
  184.    { 
  185.     setcookie("img_new_path"$new_img_path); 
  186.        //return "圖片生成成功!<br/>新圖:".$new_img_path."<br/>原圖:".$this->img_path; 
  187.    } 
  188.    else 
  189.    { 
  190.     return "圖片生成失敗,請(qǐng)檢查配置是否正確!"
  191.    } 
  192.   } 
  193.   } 
  194.  
  195.   function __desctruct() 
  196.   { 
  197.    //clear 
  198.   } 
  199.  } 
  200.  //開源代碼Vevb.com 
  201. //調(diào)用方法,代碼如下: 
  202.  
  203. /* $img_path="../users/user_photo/t2.jpg"; //被操作的圖片路徑 
  204.  $is_auto_reduce=1;//圖片是否自動(dòng)按照大小等級(jí)壓縮 1是 
  205.  $is_appoint=0;//是否手動(dòng)進(jìn)行壓縮 1是 
  206.  $multiple=0.5;//手動(dòng)指定壓縮比例 
  207.  $is_water_str=0;//是否加水印文字 
  208.  $water_str="www.111cn.net";//水印文字 
  209.  $is_watermark=0;//是否加水印圖片 1是 
  210.  $logo_path="../image/logo_about.gif";//水印圖片路徑 
  211.  $is_display=0;//是否顯示圖片 1是 
  212.  $is_create=1;//是否生成壓縮后的圖片 1是 
  213.  $img=new image_control($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create); 
  214.  echo $img->img_control();*/ 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长武县| 通城县| 宁强县| 博湖县| 绍兴市| 九寨沟县| 呼图壁县| 连城县| 孝感市| 锡林浩特市| 太仆寺旗| 中西区| 康保县| 图木舒克市| 高青县| 翁源县| 正镶白旗| 左权县| 阳东县| 肃宁县| 秦皇岛市| 嘉义市| 江门市| 广宁县| 陵水| 衢州市| 汝州市| 尼勒克县| 仙桃市| 阜平县| 红原县| 阿克陶县| 青浦区| 山东省| 汽车| 洪泽县| 玉屏| 宁城县| 临沧市| 大厂| 峨眉山市|