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

首頁 > 語言 > PHP > 正文

php圖片上傳加水印,自動增加水印

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

這是一款完美的php文件上傳代碼,圖片上傳成功后并自動給圖片增加上水印,這樣很好的快速的提高的了要手工一張張增加水印效果,代碼如下:

  1. function upload($uploadfile,$watermark=1,$watertype=1,$content){ 
  2.   foreach($uploadfile['name'as $key=>$name) {  //多文件上傳函數 
  3.    uploadall($uploadfile,$key,$watermark,$watertype,$content); 
  4.   } 
  5.  } 
  6.  function uploadall($uploadfile,$i,$watermark,$watertype,$content) { 
  7.   $watermark=$watermark;         //是否附加水印(1為加水印,其他為不加水印);  
  8.   $watertype=$watertype;         //水印類型(1為文字,2為圖片)  
  9.   $watercontent=$content;         //水印的內容 
  10.   if(emptyempty($uploadfile['name'][$i])) { 
  11.    die("未選擇文件上傳"); 
  12.   } 
  13.   if($uploadfile['error'][$i] == 2) {   //驗證html判斷結果 
  14.    die("上傳的文件太大了"); 
  15.   } 
  16.   $allow_filemaxsize = 2048000;    // 2m 
  17.   $filesize = $uploadfile['size'][$i]; 
  18.   if($filesize > $allow_filemaxsize) { 
  19.    die("上傳的文件太大了"); 
  20.   } 
  21.   $allow_filetypes = array("jpeg""gif""png","jpg","pjpeg");//允許上傳的文件統一資源類型 mimetype 
  22.   $allow = false;        //默認都不允許 
  23.   $mimetype = $uploadfile['type'][$i];  //上傳文件的mime文件類型 
  24.   foreach($allow_filetypes as $t) { 
  25.    if(strpos($mimetype$t) !== false) { 
  26.     $allow = true;      //找到了符合上傳條件的文件類型 
  27.     break
  28.    } 
  29.   } 
  30.   if($allow == false) { 
  31.    die("上傳的文件類型不被允許"); 
  32.   } 
  33.   $result = is_uploaded_file($uploadfile['tmp_name'][$i]);   //判斷是否為上傳動作產生的 
  34.   if(!$result) { 
  35.    die("上傳的文件有誤"); 
  36.   } 
  37.   $uploaddir = "img/";       //上傳文件保存目錄 
  38.   if(!file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//若上傳保存目錄不存在,則遞歸創建 
  39.   /**重命名文件**/ 
  40.   $filetype = explode("."$uploadfile['name'][$i]); 
  41.   $filetype = array_pop($filetype); 
  42.   $uploadfilename = time().".".$filetype
  43.   $_session['filename'] = $uploadfilename
  44.   //end 
  45.   $result = move_uploaded_file($uploadfile['tmp_name'][$i], $uploaddir.$uploadfilename); 
  46.   if($result) { 
  47.    echo  "文件上傳成功"
  48.   }else
  49.    switch($uploadfile['error'][$i]) { 
  50.     case 1:return "上傳的文件超出了php.ini中設定的最大值";break
  51.     case 2:return "上傳的文件超出了html中設定的最大值";break
  52.     case 3:return "文件只有部分被上傳";break;  
  53.     case 4;return "沒有文件被上傳";break;  
  54.     default:die("文件上傳失敗");   
  55.    } 
  56.   } 
  57.   if($watermark==1) {  
  58.    $iinfo=getimagesize($uploaddir.$uploadfilename);  //獲取圖片的相關信息,得到數組 
  59.    $nimage=imagecreatetruecolor($iinfo[0],$iinfo[1]);  
  60.    $white=imagecolorallocate($nimage,255,255,255); //設置背景顏色為白色 
  61.    $black=imagecolorallocate($nimage,0,0,0);  //設置背景顏色為黑色 
  62.    $red=imagecolorallocate($nimage,255,0,0);  //設置背景顏色為紅色 
  63.    imagefill($nimage,0,0,$white);     //背景填充為白色 
  64.    switch ($iinfo[2]) {  
  65.     case 1:  
  66.     $simage =imagecreatefromgif($uploaddir.$uploadfilename);  
  67.     break;  
  68.     case 2:  
  69.     $simage =imagecreatefromjpeg($uploaddir.$uploadfilename);  
  70.     break;  
  71.     case 3:  
  72.     $simage =imagecreatefrompng($uploaddir.$uploadfilename);  
  73.     break;  
  74.     case 6:  
  75.     $simage =imagecreatefromwbmp($uploaddir.$uploadfilename);  
  76.     break;  
  77.     default:  
  78.     die("不支持的文件類型");  
  79.     exit;  
  80.    }  
  81.    imagecopy($nimage,$simage,0,0,0,0,$iinfo['0'],$iinfo['1']);  
  82.    switch($watertype) {  
  83.     case 1:             //加水印字符串  
  84.     imagestring($nimage,5,$iinfo['0']/2-50,$iinfo['1']-30,$watercontent,$black);  
  85.     break;  
  86.     case 2:            //加水印圖片  
  87.     $simage1 =imagecreatefromgif($watercontent);  
  88.     $size = getimagesize($watercontent); 
  89.     imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[0],$size[1]);  
  90.     imagedestroy($simage1);  
  91.     break;  
  92.    } 
  93.  
  94.    switch ($iinfo[2]) {  
  95.     case 1:  
  96.     imagejpeg($nimage$uploaddir.$uploadfilename); //將圖像$nimage以$destination文件名創建一個jpeg的格式文件 
  97.     break;  
  98.     case 2:  
  99.     imagejpeg($nimage$uploaddir.$uploadfilename);  
  100.     break;  
  101.     case 3:  
  102.     imagepng($nimage$uploaddir.$uploadfilename);  
  103.     break;  
  104.     case 6:  
  105.     imagewbmp($nimage$uploaddir.$uploadfilename);  
  106.     break;  
  107.    }  
  108.    imagedestroy($nimage);    //覆蓋原上傳文件  
  109.    imagedestroy($simage);  
  110.   } //開源代碼Vevb.com 
  111. if(@$_get['act'] == "insert") {    //未作參數校驗 
  112.      //該函數的四個參數分別是:上傳控件的name值;是否加水印(1為加,其他數字為不佳); 
  113.      //水印的類型(1為字符串,2為圖片);水印的內容,字符串時寫數據,圖片時寫圖片的地址; 
  114.  $picture = upload($_files['picture'],1,2,"img/watermark.gif");//上傳文件,并返回上傳后的文件路徑名 
  115.  

上傳代碼如下:

  1. <form method="post" action="" enctype="multipart/form-data"> 
  2.  <table border="1" cellpadding="5" cellspacing="0"> 
  3.   <tr> 
  4.    <td>產品圖片:</td> 
  5.    <td><input type="hidden" name="max_file_size" value="1024000"> 
  6.     <input type="file" name="picture[]"> 
  7.    </td> 
  8.   </tr> 
  9.   <tr> 
  10.    <td colspan="2" align="center"><input type="submit" value="提交"></td> 
  11.   </tr> 
  12.  </table> 
  13. </form>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南华县| 晋宁县| 铅山县| 怀来县| 彭阳县| 海丰县| 天全县| 霍山县| 丁青县| 新化县| 娱乐| 烟台市| 宜宾市| 本溪市| 长乐市| 金溪县| 云龙县| 明星| 宁国市| 宜阳县| 白水县| 西昌市| 长汀县| 深圳市| 阳朔县| 桂平市| 阳新县| 厦门市| 高阳县| 格尔木市| 岳池县| 杨浦区| 如皋市| 太原市| 福贡县| 绥滨县| 来宾市| 阿图什市| 武冈市| 富民县| 灵台县|