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

php图片添加文字水印实现代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-14 20:42:41 浏览: 评论:0 

这篇文章主要为大家详细介绍了php图片添加文字水印实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下:

  1. <?php 
  2. /*PHP图片加文字水印类库 
  3. QQ:3697578482 伤心的歌 
  4. 该类库暂时只支持文字水印,位置为右下角,颜色随机 
  5. 调用方法: 
  6. 1、在需要加水印的文件顶部引入类库: 
  7. include_once 'imageClass.php'; 
  8. 2、声明新类: 
  9. $tpl=new image_fu; 
  10. 3、给图片水印提供参数: 
  11. $tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度); 
  12. 比如:$tpl->img('abc.jpg','这是水印文字','ziti.ttf',30,0) 
  13. */ 
  14. class image_fu{ 
  15. private $image; 
  16. private $img_info; 
  17. private $img_width; 
  18. private $img_height; 
  19. private $img_im; 
  20. private $img_text; 
  21. private $img_ttf=''; 
  22. private $img_new; 
  23. private $img_text_size; 
  24. private $img_jd; 
  25. function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){ 
  26. if(isset($img)&&file_exists($img)){//检测图片是否存在 
  27. $this->image =$img; 
  28. $this->img_text=$txt; 
  29. $this->img_text_size=$size; 
  30. $this->img_jd=$jiaodu; 
  31. if(file_exists($ttf)){ 
  32. $this->img_ttf=$ttf; 
  33. }else{ 
  34. exit('字体文件:'.$ttf.'不存在!'); 
  35. } 
  36. $this->imgyesno(); 
  37. }else{ 
  38. exit('图片文件:'.$img.'不存在'); 
  39. } 
  40. } 
  41. private function imgyesno(){ 
  42. $this->img_info =getimagesize($this->image); 
  43. $this->img_width =$this->img_info[0];//图片宽 
  44. $this->img_height=$this->img_info[1];//图片高 
  45. //检测图片类型 
  46. switch($this->img_info[2]){ 
  47. case 1:$this->img_im = imagecreatefromgif($this->image);break; 
  48. case 2:$this->img_im = imagecreatefromjpeg($this->image);break; 
  49. case 3:$this->img_im = imagecreatefrompng($this->image);break; 
  50. default:exit('图片格式不支持水印'); 
  51. } 
  52. $this->img_text(); 
  53. } 
  54. private function img_text(){ 
  55. imagealphablending($this->img_im,true); 
  56. //设定颜色 
  57. $color=imagecolorallocate($this->img_im,rand(0,255),rand(0,255),rand(0,255)); 
  58. $txt_height=$this->img_text_size; 
  59. $txt_jiaodu=$this->img_jd; 
  60. $ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text); 
  61. $w = $ttf_im[2] - $ttf_im[6]; 
  62. $h = $ttf_im[3] - $ttf_im[7]; 
  63. //$w = $ttf_im[7]; 
  64. //$h = $ttf_im[8]; 
  65. unset($ttf_im); 
  66. $txt_y =$this->img_height-$h; 
  67. $txt_x =$this->img_width-$w; 
  68. //$txt_y =0; 
  69. //$txt_x =0; 
  70. $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text); 
  71. @unlink($this->image);//删除图片 
  72. switch($this->img_info[2]) {//取得背景图片的格式 
  73. case 1:imagegif($this->img_im,$this->image);break; 
  74. case 2:imagejpeg($this->img_im,$this->image);break; 
  75. case 3:imagepng($this->img_im,$this->image);break; 
  76. default: exit('水印图片失败'); 
  77. } 
  78. } 
  79. //显示图片 
  80. function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';} 
  81. //释放内存 
  82. private function img_nothing(){ 
  83. unset($this->img_info); 
  84. imagedestroy($this->img_im); 
  85. } 
  86. } 
  87. ?> 

以上就是本文的全部内容,希望对大家的学习有所帮助。

Tags: php文字水印

分享到: