PHP创建(中/英文字)图片

这个PHP代码是我做的一个程序的一部分,现在贴出来分享一下。这个代码的功能是创建一个图片,不但可以用自定义字体在图片上写英文,也可以写中文了!这个代码适用于验证码、给图片加水印等功能。

  1. <?php
  2. /*
  3. Photozero.net 改编自PHP参考文档
  4. */
  5.  
  6. //设置Header,如果输出图片不成功,请先暂时去掉这代码,查看错误信息
  7. header("Content-type: image/png");
  8. header("Cache-Control: no-cache");
  9.  
  10. $zh_text = '黑体';
  11. $en_text = 'Test';
  12. //要输出的字
  13.  
  14. $zh_font = 'simhei.ttf';
  15. $en_font = 'arial.ttf';
  16. //字库的文件名。建议中文字体和E文字体用不一样的,因为宋体、黑体字库里的英文实在不咋滴
  17. //这里用的都是TTF字体。懒得上网找就到 C:\WINDOWS\Fonts 下,Copy几个字体到程序目录下就好了
  18.  
  19. // 创建一个真彩的图片背景,参数是 X长 ,Y宽。
  20. $im = imagecreatetruecolor(400, 400);
  21. //或者可以调用已有的PNG图片等 : $im = imagecreatefrompng('background.png');
  22.  
  23. // 定义几个色彩
  24. $white = imagecolorallocate($im, 255, 255, 255);
  25. $grey = imagecolorallocate($im, 128, 128, 128);
  26. $black = imagecolorallocate($im, 0, 0, 0);
  27.  
  28. //填充背景为白色
  29. imagefill($im, 0, 0, $white);
  30. //将背景透明化
  31. imagecolortransparent($im,$white);
  32. //以上两行是创建透明图片的关键!
  33. //很多人反应, imagecreatetruecolor创建后的图片,背景颜色是黑的,无论怎么修改都不能变成白色的
  34. //我先将背景填充为白色,再做透明处理就可以了!在Firefox3和IE7下测试成功!
  35.  
  36. // 这是一个很简单的产生阴影的效果。
  37. //先在原本要输出的位置的偏左下角一点点输出灰色的字体,接着再用黑色字体写上去就有阴影效果了
  38. //下次再提供点别的花样~
  39. //imagettftext($im, 20, 0, 11, 21, $grey, $en_font, $en_text);
  40.  
  41. // 写入字体
  42. imagettftext($im, 12, 0, 100, 120, $black, $en_font, $en_text);
  43.  
  44. imagepng($im);
  45. imagedestroy($im);
  46. // 不用说了,输出图片,然后清除缓存
  47.  
  48.  
  49. //函数都是用PHP内置的,如果有不了解的请参考一下文档。
  50. ?>

整个代码的功能是比较单一的,但这是一个创建图片比较基本的框架。无论是做验证码还是要提供显示IP的服务,只要略微修改就很快能用了。就留着这代码备用吧,以后哪天说不定就用上了。

此条目发表在 PHP 分类目录,贴了 , 标签。将固定链接加入收藏夹。

PHP创建(中/英文字)图片》有 2 条评论

  1. Dianso 说:

    先收藏下,我也准备买些php类的书开始学PHP了