Rumah php教程 php手册 php上传图片加水印(图片水印,文字水印)

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

Jun 13, 2016 am 09:48 AM
php muat naik tambah gambar gambar wujud kemas watak bayaran Bandingkan tera air pengguna daripada

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();*/

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles