php给图片加文字水印与图片水印代码

作者:袖梨 2022-06-24

$image->wprint_img();//执行图片水印
$image->wprint_string();//执行文字水印
*/

 代码如下 复制代码

class editimage{
 private $imagefile;//图片文件
 private $smallimg;//水印图片
 private $string;//水印文字
 private $position;//存放位置
 private $dst_x=600;//原始图片打水印x坐标
 private $dst_y=0;//原始图片打水印y坐标
 private $str_x=450;
 private $str_y=200;
 private $font="c:windows ontssimhei.ttf";//原始图片打水印字体路径
 private $imgej;// imagecolorallocate后的变量
 
 function __get($value){
  return $this->$value;
 }
 function __set($property,$value){
  $this->$property=$value;
 }
 /**
  * 构造函数初始化
  *
  * @param string $imagefile 被上水印的文件
  * @param string $smallimg 水印文件
  * @param string $string 水印文字
  * @param string $position 存放位置
  * @param int $dst_x  被上水印的图片x
  * @param int $dst_y  被上水印的图片y
  */
 function __construct($imagefile,$smallimg='',$string=''){//,$position='',$dst_x=0,$dst_y=0
  $this->imagefile=$imagefile;
  $this->smallimg=$smallimg;
  $this->string=$string;
  $this->imgej=$this->imagecreatef($this->imagefile);
 }

 function get_extname($file){//获取文件的后缀名
  if (file_exists($this->imagefile)) {
   $img=getimagesize($file);
   switch ($img[2]){
    case "1":
     return "gif";
    case "2":
     return "jpg";
    case "3":
     return "png";
   }
  }else{
   return false;
  }
 }  
 

 

 

 

 代码如下 复制代码
function getsize($file,$wh){//获取图大小. $wh:w获得宽,h获得高
  $image=getimagesize($file);
  if ($wh) {
   switch ($wh){
    case "w":
     return $image[0];
    case "h":
     return $image[1];
   }
  }else{
   return false;
  }
 }
 function imagecreatef($file){//创建类型
  if ($this->get_extname($file)) {
   switch($this->get_extname($file)){
    case "gif":
     return imagecreatefromgif($file);
    case "jpg":
     return imagecreatefromjpeg($file);
    case "png":
     return imagecreatefrompng($file);
   }
  }else{
   echo "文件不存在";
  }
 } 
 
 //水印图片处理
 function wprint_img(){
  if($this->smallimg){
   imagecopy($this->imgej,$this->imagecreatef($this->smallimg),$this->dst_x,$this->dst_y,0,0,$this->getsize($this->smallimg,"w"),$this->getsize($this->smallimg,"h"));
   }else{
   return "水印图片不存在!";
  }
 }
 //水印文字处理
 function wprint_string(){
  return imagettftext($this->imgej,20,0,$this->str_x,$this->str_y,imagecolorallocate($this->imgej,200,200,200),$this->font,iconv("gb2312","utf-8",$this->string));
 }
 
 function choose_imgouttype(){//输出
   if($this->position){
    $this->get_extname($this->imagefile);
    switch ($this->get_extname($this->imagefile)){
    case "gif":
     return imagegif($this->imgej,$position);
    case "jpg":
     return imagejpeg($this->imgej,$this->position);
    case "jpeg":
     return imagejpeg($this->imgej,$this->position);
    case "png":
     return imagepng($this->imgej,$position);
    }
   }else{
    
    switch ($this->get_extname($this->imagefile)){
    case "gif":
     return imagegif($this->imgej);
    case "jpg":
     return imagejpeg($this->imgej);
    case "jpeg":
     return imagejpeg($this->imgej);
    case "png":
     return imagepng($this->imgej);
    }
   }
  
 }
}
 

 

 

 代码如下 复制代码
$image=new editimage("d90.gif","hknmtt.png","我的d90");
$image->wprint_img();//执行图片水印
$image->wprint_string();//执行文字水印
$image->choose_imgouttype();

相关文章

精彩推荐