php使用GD库实现文字图片水印及缩略图教程

缩略图可以通过gd库来实现,下面我们一起来看一个简单的php使用GD库实现文字图片水印及缩略图例子,希望此例子能够为大家带来有效的帮助.

我们要使用gd库就必须先打开gd库,具体如下.

Windows下开启PHP的GD库支持.

找到php.ini,打开内容,找到:

;extension=php_gd2.dll

把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了.

一:添加文字水印,使用方法.

  1. require 'image.class.php'
  2. $src="001.jpg";
  3. $content="hello";
  4. $font_url="my.ttf";
  5. $size=20;
  6. $image=new Image($src);
  7. $color=array(
  8. 0=>255,
  9. 1=>255,
  10. 2=>255,
  11. 2=>20
  12. );
  13. $local=array(
  14. 'x'=>20,
  15. 'y'=>30
  16. );
  17. $angle=10;
  18. $image->fontMark($content,$font_url,$size,$color,$local,$angle);
  19. $image->show();

二:图片缩略图,使用方法:

  1. require 'image.class.php'
  2. $src="001.jpg";
  3. $image=new Image($src);
  4. $image->thumb(300,200);
  5. $image->show();

三:image.class.php

  1. class image{
  2. private $info;
  3. private $image;
  4. public function __contruct($src){
  5. $info= getimagesize($src);
  6. $this->info=array(
  7. 'width'=> $info[0],
  8. 'height'=>$info[1],
  9. 'type'=>image_type_to_extension($info[2],false),
  10. 'mime'=>$info['mime'],
  11. );
  12. $fun="imagecreatefrom{$this->info['type']}";
  13. $this->image= $fun($src);
  14. }
  15. //缩略图
  16. public function thumd($width,$height){
  17. $image_thumb= imagecreatetruecolor($width,$height);
  18. imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);
  19. imagedestroy($this->image);
  20. $this->image=$image_thumb;
  21. }
  22. //文字水印
  23. public function fontMark($content,$font_url,$size,$color,$local,$angle){
  24. $col=imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
  25. $text=imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content);
  26. }
  27. //输出图片
  28. public function show()
  29. {
  30. header("Content-type:",$this->info['mime']);
  31. $func="image{$this->info['type']}";
  32. $func($this->image);
  33. }
  34. public function save($nwename){
  35. $func="image{$this->info['type']}";
  36. //从内存中取出图片显示
  37. $func($this->image);
  38. //保存图片
  39. $func($this->image,$nwename.$this->info['type']);
  40. //phpfensi.com
  41. }
  42. public function _destruct(){
  43. imagedestroy($this->image);
  44. }
  45. }