php 给图片加上文字水印代码

给图片加水印是很多网站会做的事情,下面这段代码只支持给图片加上文字水印,现在暂时只支持英文的,如果要让此程序能支持中文汉字就把$font=\\\'verdana.ttf\\\';调用一个中文字体就OK了,实例代码如下:

  1. $image=$_get[id];
  2. $im=getimagesize($image);
  3. //print_r($im);
  4. //以下是读取文字的宽高
  5. $font='verdana.ttf';//字体
  6. $font_size = $im[0]/20;//文字大小
  7. $size=imagettfbbox($font_size,0,$font,'phpfensi.com');//文字宽高
  8. $textwidth = $size [4];//取出宽
  9. $textheight = abs( $size [7] );//取出高
  10. $pic_w=abs(($im[0]-$textwidth)/2);//文字存放宽的位置
  11. $pic_h=abs(($im[1]-$textheight)/2);//文字存放高的位置
  12. switch($im[2])
  13. {
  14. case 1:
  15. $im=imagecreatefromgif($image);
  16. break;
  17. case 2:
  18. $im=imagecreatefromjpeg($image);
  19. break;
  20. case 3:
  21. $im=imagecreatefrompng($image);
  22. break;
  23. }
  24. //$logo="2.png";//商标图片
  25. //$ing=getimagesize($logo);
  26. //
  27. // switch($ing[2])
  28. //
  29. //{
  30. //case 1:
  31. //$in=imagecreatefromgif($logo);
  32. //break;
  33. //
  34. //case 2:
  35. //$in=imagecreatefromjpeg($logo);
  36. //break;
  37. //
  38. //case 3:
  39. //$in=imagecreatefrompng($logo);
  40. //break;
  41. //}
  42. //imagecopy($im,$in,200,3,0,0,'120','110');//图片合并
  43. $te = imagecolorclosestalpha($im,255,255,255,60);//最后一个数值是透明度越大越透明
  44. $str=iconv("gbk","utf-8","phpfensi.com"); //设置文字的内容和编码,很简单吧
  45. imagettftext($im,$font_size,0,$pic_w,$pic_h,$te,'verdana.ttf',$str);
  46. //开源代码phpfensi.com
  47. header("content-type: image/jpeg");
  48. imagejpeg($im);