搜尋
首頁php教程php手册php上传图片加水印(图片水印,文字水印)

php上传图片加水印(图片水印,文字水印)

Jun 13, 2016 am 09:48 AM
php上傳圖片整理比較水印使用者

php上传图片加水印(图片水印,文字水印) 这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。

php教程上传图片加水印(图片水印,文字水印)
这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。

/*
 * created on 2010-6-21
 *
 * the class for control image
 *
 * made by s71ence
 *
 * @$img_path 图片路径
 * @$is_auto_reduce 图片是否自动按照大小等级压缩 1是
 * @$is_appoint 是否手动进行压缩或放大 1是
 * @$multiple 手动指定压缩/放大比例
 * @$is_water_str 是否加水印文字 1是
 * @$water_str 水印文字
 * @$is_watermark 是否加水印图片 1是
 * @$logo_path 水印图片路径
 * @$is_display 是否显示图片 1是
 * @$is_create 是否生成压缩后的图片 1是
 *
 * 注:
 * 1.生成新图时不可显示图片,即$isdisplay和$iscreate不可同时置为1
 * 2.当图片宽或高小于1000时,需手动设置压缩比例进行压缩
 * 3.不建议启用水印,若要启用,建议原图片大小最好在1000以内
 * 4.水印文字中不可含有中文
 * 5.新生成的图片在原目录文件中,支持n个层级
 */

 class image_control
 {
  private $img_path;
  private $is_auto_reduce;
  private $is_appoint;
  private $multiple;
  private $is_water_str;
  private $water_str;
  private $is_watermark;
  private $logo_path;
  private $is_display;
  private $is_create;

  function __construct($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create)
  {
   $this->img_path=$img_path;
   $this->is_auto_reduce=$is_auto_reduce;
   $this->is_appoint=$is_appoint;
   $this->multiple=$multiple;
   $this->is_water_str=$is_water_str;
   $this->water_str=$water_str;
   $this->is_watermark=$is_watermark;
   $this->logo_path=$logo_path;
   $this->is_display=$is_display;
   $this->is_create=$is_create;
  }

  function img_control()
  {
  //获取原图
  $img_info=getimagesize($this->img_path);

  switch($img_info[2])
  {
   case 1:
    $img_get=@imagecreatefromgif($this->img_path);
   break;

   case 2:
    $img_get=@imagecreatefromjpeg($this->img_path);
   break;

   case 3:
    $img_get=@imagecreatefrompng($this->img_path);
   break;
  }

  //文字水印
  if($this->is_water_str==1)
  {
   //imagettftext(原图,文字大小,文字旋转,水印起始坐标x,水印起始坐标y,$te,'simhei.ttf',$str);
   $te=imagecolorallocate($img_get,255,255,255);
   $str=iconv("gbk","utf-8",$this->water_str);//水印文字
   imagettftext($img_get,16,0,$img_info[0]-200,$img_info[1]-20,$te,'msyh.ttf',$str);
  }

  //图片水印
  if($this->is_watermark==1)
  {
   //水印图片处理
   $logo_info=getimagesize($this->logo_path);

   switch($logo_info[2])
   {
    case 1:
     $logo=@imagecreatefromgif($this->logo_path);
    break;

    case 2:
     $logo=@imagecreatefromjpeg($this->logo_path);
    break;

    case 3:
     $logo=@imagecreatefrompng($this->logo_path);
    break;
   }

   //水印logo图片
   //函数说明:imagecopy(原图,水印图片,水印坐标x,水印坐标y,水印图片开始坐标x,水印图片开始坐标y,'水印图片宽','水印图片高');
   imagecopy($img_get,$logo,0,0,0,0,$logo_info[0],$logo_info[1]);
  }

  //自动图片压缩 按图片大小分级自动压缩
  //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高);
  if($this->is_auto_reduce==1)
  {
   if($img_info[0]>=3000 || $img_info[1]>=3000)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.03,$img_info[1]*0.03);//生成画布
    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]);
   }
   else if($img_info[0]>=2500 || $img_info[1]>=2500)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.04,$img_info[1]*0.04);
    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]);
   }
   else if($img_info[0]>=2000 || $img_info[1]>=2000)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.05,$img_info[1]*0.05);
    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]);
   }
   else if($img_info[0]>=1500 || $img_info[1]>=1500)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.08,$img_info[1]*0.08);
    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]);
   }
   else if($img_info[0]>=1000 || $img_info[1]>=1000)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.1,$img_info[1]*0.1);
    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]);
   }
   else if($img_info[0]>=500 || $img_info[1]>=500)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.2,$img_info[1]*0.2);
    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]);
   }
   else if($img_info[0]>=300 || $img_info[1]>=300)
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*0.3,$img_info[1]*0.3);
    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]);
   }
   else
   {
    $new_image_get=imagecreatetruecolor($img_info[0]*1,$img_info[1]*1);
    imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*1,$img_info[1]*1,$img_info[0],$img_info[1]);
   }
  }

  //手动图片压缩
  //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高);
  if($this->is_appoint)
  {
   $new_image_get=imagecreatetruecolor($img_info[0]*$this->multiple,$img_info[1]*$this->multiple);//生成画布
   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]);
  }

  //图像输出
  if($this->is_display==1)
  {
   header("content-type: image/jpeg");
   return imagejpeg($new_image_get);
  }

  //新图像生成
  if($this->is_create==1)
  {
   $new_name=explode("/",$this->img_path);
   $new_name_string="";

   for($i=0;$i    {
    $new_name_string.=$new_name[$i]."/";
   }

   $new_img_path=$new_name_string."new".$new_name[$i];

   if(imagejpeg($new_image_get,$new_img_path) && imagejpeg($img_get,$this->img_path))
   {
    setcookie("img_new_path", $new_img_path);
       //return "图片生成成功!
新图:".$new_img_path."
原图:".$this->img_path;
   }
   else
   {
    return "图片生成失败,请检查配置是否正确!";
   }
  }
  }

  function __desctruct()
  {
   //clear
  }
 }

//调用方法

/* $img_path="../users/user_photo/t2.jpg"; //被操作的图片路径
 $is_auto_reduce=1;//图片是否自动按照大小等级压缩 1是
 $is_appoint=0;//是否手动进行压缩 1是
 $multiple=0.5;//手动指定压缩比例
 $is_water_str=0;//是否加水印文字
 $water_str="www.bKjia.c0m";//水印文字
 $is_watermark=0;//是否加水印图片 1是
 $logo_path="../image/logo_about.gif";//水印图片路径
 $is_display=0;//是否显示图片 1是
 $is_create=1;//是否生成压缩后的图片 1是
 $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);
 echo $img->img_control();*/

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境