本文实例讲述了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