当前位置:编程学习 > > 正文

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

时间:2022-03-29 03:52:02类别:编程学习

php去水印方法

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

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

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

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

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

    原文链接:https://blog.csdn.net/u011415782/article/details/51598081

    上一篇下一篇

    猜您喜欢

    热门推荐