当前位置:首页 > PHP教程 > php图像处理 > 列表

PHP开发的文字水印,缩略图,图片水印实现类与用法示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-17 10:48:51 浏览: 评论:0 

这篇文章主要介绍了PHP开发的文字水印,缩略图,图片水印实现类与用法,结合完整实例形式分析了php文字水印、缩略图操作类定义与简单使用方法,需要的朋友可以参考下。

本文实例讲述了PHP开发的文字水印,缩略图,图片水印实现类与用法,分享给大家供大家参考,具体如下:

1.实现类ImageToTest.class.php参考代码

  1. class ImageToTest { 
  2.   /** 
  3.    * 图片的基本信息 
  4.    */ 
  5.   private $info
  6.   private $image
  7.   public function __construct($src){ 
  8.     $info = getimagesize($src); 
  9.     $this->info = array
  10.       'width'=> $info[0], 
  11.       'height'=> $info[1], 
  12.       'type'=> image_type_to_extension($info[2],false), 
  13.       'mime'=>$info['mime'
  14.     ); 
  15.     $fun = "imagecreatefrom{$this->info['type']}"
  16.     $this->image = $fun($src); 
  17.   } 
  18.   /** 
  19.    * 操作图片 (压缩) 
  20.    */ 
  21.   public function thumb($width,$height){ 
  22.     $image_thumb = imagecreatetruecolor($width,$height); 
  23.     imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height
  24.       $this->info['width'],$this->info['height']); 
  25.     imagedestroy($this->image); 
  26.     $this->image = $image_thumb
  27.   } 
  28.   /** 
  29.    * 操作图片(添加文字水印) 
  30.    */ 
  31.   public function fontMark($content,$font_url,$size,$color,$local,$angle){ 
  32.     $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]); 
  33.     imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content); 
  34.   } 
  35.   /** 
  36.    * 操作图片(添加水印图片) 
  37.    */ 
  38.   public function imageMark($source,$local,$alpha){ 
  39.     //1.获取水印图片的基本信息 
  40.     $info2 = getimagesize($source); 
  41.     //2.通过水印的图片编号来获取水印的图片类型 
  42.     $type2 = image_type_to_extension($info2[2],false); 
  43.     //3.在内存中创建一个和我们的水印图像一致的图像类型 
  44.     $func2 = "imagecreatefrom{$type2}"
  45.     //4.把水印图片复制到内存中 
  46.     $water = $func2($source); 
  47.     //5.合并图片 
  48.     imagecopymerge($this->image,$water,$local['x'],$local['y'],0,0,$info2[0],$info2[1],$alpha); 
  49.     //6.销毁水印图片 
  50.     imagedestroy($water); 
  51.   } 
  52.   /** 
  53.    * 在浏览器中输出图片 
  54.    */ 
  55.   public function show(){ 
  56.     header("Content-type:".$this->info['mime']); 
  57.     $funs = "image{$this->info['type']}"
  58.     $funs($this->image); 
  59.   } 
  60.   /** 
  61.    * 把图片保存到硬盘里 
  62.    */ 
  63.   public function save($newName){ 
  64.     $funs = "image{$this->info['type']}"
  65.     $funs($this->image,'./outPut/'.$newName.'.'.$this->info['type']); 
  66.   } 
  67.   /** 
  68.    * 销毁图片 使用析构函数 
  69.    */ 
  70.   public function __destruct() 
  71.   { 
  72.     imagedestroy($this->image); 
  73.   } 

2.测试参考代码

  1. require_once('ImageToTest.class.php'); 
  2. /*$src = './image/wbg.jpg'; 
  3. $image = new ImageToTest($src); 
  4. $image->thumb(700,550); 
  5. $image->show();*/ 
  6. /*$src2 = './image/wbg.jpg'; 
  7. $content = 'SGC'; 
  8. $font_url = './image/YGYcuhei.ttf'; 
  9. $size = 33; 
  10. $color = array( 
  11.   0=>2, 
  12.   1=>222, 
  13.   2=>222, 
  14.   3=>60 
  15. ); 
  16. $local = array( 
  17.   'x'=>20, 
  18.   'y'=>100 
  19. ); 
  20. $angle = 10; 
  21. $image2 = new ImageToTest($src2); 
  22. $image2->fontMark($content,$font_url,$size,$color,$local,$angle); 
  23. $image2->show(); 
  24. $image2->save('hahahah');*/ 
  25. $src3 = './image/wbg.jpg'
  26. $source = './image/water.jpg'
  27. $local = array
  28.   'x'=>20, 
  29.   'y'=>100 
  30. ); 
  31. $font_url = './image/YGYcuhei.ttf'
  32. $size = 38; 
  33. $color = array
  34.   0=>2, 
  35.   1=>222, 
  36.   2=>222, 
  37.   3=>60 
  38. ); 
  39. $alpha = 60; 
  40. $angle = 50; 
  41. $image3 = new ImageToTest($src3); 
  42. $image3->imageMark($source,$local,$alpha); 
  43. $image3->thumb(700,550); 
  44. $image3->fontMark('Hello',$font_url,$size,$color,$local,$angle); 
  45. $image3->show(); 
  46. $image3->save('WAWAWAWAWA');

Tags: PHP文字水印 PHP缩略图

分享到: