使用GD库生成带阴影文字的图片

最近使用GD库来进行微信公共账号的图片生成,研究了一下GD库文字阴影效果的生成同时也发现了GD库的强大。

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。

GD库的安装什么的网上都有,现在很多虚拟空间也都支持,这里就不再赘述。下面通过我实际应用代码的实例和相关的注释为大家介绍一下GD库的使用方法。

代码如下:

  1. $str="北京";
  2. $str2= "空气质量:轻度污染";
  3. // 通过图片生成一个对象$im
  4. $im = imagecreatefromjpeg("images/3.jpg");
  5. //载入字体zt.ttf
  6. $fnt = "zt.ttf";
  7. //创建颜色,用于文字字体的白和阴影的黑
  8. $white=imagecolorallocate($im,222,229,207);
  9. $black=imagecolorallocate($im,50,50,50);
  10. //创建关于相对图片位置的函数,方便调用
  11. $top=100;
  12. $left=60;
  13. $top2=170;
  14. //在图片中添加文字,imagettftext (image,size,angle, x, y,color,fontfile,text)
  15. imagettftext($im,41, 0, $left+1, $top+1, $black, $fnt, $str);
  16. imagettftext($im,41, 0, $left, $top, $white, $fnt, $str);
  17. imagettftext($im,43, 0, $left+1,$top2+1 , $black, $fnt, $str2);
  18. imagettftext($im,43, 0, $left,$top2, $white, $fnt, $str2);
  19. //将$im输出
  20. ImageJpeg($im);
  21. //销毁$im对象
  22. ImageDestroy($im);
  23. $str="北京";
  24. $str2= "空气质量:轻度污染";
  25. // 通过图片生成一个对象$im
  26. $im = imagecreatefromjpeg("images/3.jpg");
  27. //载入字体zt.ttf
  28. $fnt = "zt.ttf";
  29. //创建颜色,用于文字字体的白和阴影的黑
  30. $white=imagecolorallocate($im,222,229,207);
  31. $black=imagecolorallocate($im,50,50,50);
  32. //创建关于相对图片位置的函数,方便调用
  33. $top=100;
  34. $left=60;
  35. $top2=170;
  36. //在图片中添加文字,imagettftext (image,size,angle, x, y,color,fontfile,text)
  37. imagettftext($im,41, 0, $left+1, $top+1, $black, $fnt, $str);
  38. imagettftext($im,41, 0, $left, $top, $white, $fnt, $str);
  39. imagettftext($im,43, 0, $left+1,$top2+1 , $black, $fnt, $str2);
  40. imagettftext($im,43, 0, $left,$top2, $white, $fnt, $str2);
  41. //将$im输出
  42. ImageJpeg($im);
  43. //销毁$im对象
  44. ImageDestroy($im);

接下来详细解释一下:

imagettftext (image,size,angle, x, y,color,fontfile,text)

imagettftext() 是将字符串 text画到 image所代表的图像上,从坐标 x,y(左上角为 0, 0)开始,角度为 angle,颜色为 color,使用 fontfile 所指定的 TrueType 字体文件。

由 x,y 所表示的坐标定义了第一个字符的基本点大概在字符的左下角。

angle 以角度表示,0 度为从左向右阅读文本,更高的值表示逆时针方向(即如果值为 90 则表示从下向上阅读文本)。

fontfile 是想要使用的 TrueType 字体的文件名。

text 是文本字符串,可以包含 UTF-8 字符序列。

color 是颜色的索引值。

以上所述就是本文的全部内容了,希望大家能够喜欢。