首先得确定php.ini设置有没有打开GD扩展功能,測试例如以下

print_r(gd_info());

假设有打印出内容例如以下,则说明GD功能有打开:

Array
(
[GD Version] => bundled (2.0.34 compatible)
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] => 1
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPG Support] => 1
[PNG Support] => 1
[WBMP Support] => 1
[XPM Support] =>
[XBM Support] => 1
[JIS-mapped Japanese Font Support] =>
)

GD绘图一般过程例如以下:

1.创建一张画布资源

2.创建颜色画笔

3.绘图

4.保存图片或输出图片

5.销毁内存画布资源

測试代码例如以下:

<?

php
header("Content-type: image/jpeg"); $width = 400; //宽。高
$height = 400; $image = imagecreate($width, $height); //第一步:创建空白图像 $white = imagecolorallocate($image, 0, 0, 0); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像。 $green = imagecolorallocate($image, 0, 255, 0); //第二步:为图像分配颜色 imageline($image, 0, 20, 400, 20, $green); //第三步:画线
imagerectangle($image,100,40,300,100,$green); //画矩形
imagearc($image, 200, 150, 90, 90, 0, 360, $green); //画圆
imagestring($image, 14, 100, 240, "PHP is NiuBi HongHong!", $green); //写字符串 $str="abcdefghjklmnpqrstuvwxyz23456789";
$randstr = substr(str_shuffle($str), 0,4);
imagestring($image, 14, 100, 260, $randstr, $green); //验证码 imagettftext($image, 14, 0, 100, 300, $green, './MSJHBD.TTF', "中文vsEnglish"); //中文验证 // imagejpeg($image,'./test.jpg'); //在当前路径下保存图片为test.jpg
imagejpeg($image); //第四步:不加文件名称。直接输出到网页 imagedestroy($image); //第五步:销毁,回收资源
?>

測试图片例如以下:

注:GD库强大的能够画各种报表(如柱状图,饼状图等)、缩略图、加水印图和股票走势图

缩略图功能样例:

<?php
header("Content-type: image/png"); $width = 300; //原图宽。高
$height = 210; $thumb_width = (int)$width/2;
$thumb_height = (int)$height/2; $dst = imagecreate($thumb_width,$thumb_height); //创建缩略图画布 $gray = imagecolorallocate($dst, 100, 100, 100); $src = imagecreatefrompng('./me.png'); //读取原图 //把原图copy到缩略图画布上
imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height); imagepng($dst,'./me_thumb.png'); imagedestroy($dst);
imagedestroy($src);
? >

PHP利用GD库绘图和生成验证码图片的更多相关文章

  1. php学习笔记:利用gd库生成图片,并实现随机验证码

    说明:一些基本的代码我都进行了注释,这里实现的验证码位数.需要用的字符串都可以再设置.有我的注释,大家应该很容易能看得懂. 基本思路: 1.用mt_rand()随机生成数字确定需要获取的字符串,对字符 ...

  2. 第二百七十节,Tornado框架-生成验证码图片,以及验证码结合Session验证

    Tornado框架-生成验证码图片,以及验证码结合Session验证 第一.生成验证码图片  生成验证码图片需要两个必须模块 1.python自带的random(随机模块) 2.Pillow()图像处 ...

  3. java web学习总结(九) -------------------通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  4. JavaWeb---总结(九)通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片  1 package gacl. ...

  5. Java 生成验证码图片

    生成验证码图片并对提交的输入进行验证 // HttpServletResponse常见应用——生成验证码 // 利用BufferedImage类生产随机图片 public static final i ...

  6. javaweb学习总结(九)—— 通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  7. 012. asp.net生成验证码图片(汉字示例/字母+数字)

    protected void Page_Load(object sender, EventArgs e) { //生成验证码图片的基本步骤 string checkCode = "新年快乐& ...

  8. J2EE如何生成验证码图片和点击刷新验证码

    验证码图片生成步骤 创建BufferedImage对象. 获取BufferedImage的画笔,即调用getGraphics()方法获取Graphics对象. 调用Graphics对象的setColo ...

  9. java web 学习九(通过servlet生成验证码图片)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

随机推荐

  1. Python_Tips[5] -> 可变数据类型作为初始化形参

    可变数据类型作为初始化形参 / Mutable Parameter as Init Formal-para 由于在Python中,没有类似C语言的static静态参数,因此当一个函数需要一个只初始化一 ...

  2. Reverse Words in a String II -- LeetCode

    Given an input string, reverse the string word by word. A word is defined as a sequence of non-space ...

  3. MySQL区间统计SQL

    SELECT elt( INTERVAL ( datediff(END_DATE, CURDATE()), 1, 201, 401, 601 ), '0-200', '200-400', '400-6 ...

  4. php程序无法使用localhost连接数据库解决方法(linux)

    php程序无法使用localhost连接数据库解决方法(linux) 出现这种情况是因为PHP无法正确获取mysql.sock 在php.ini文件中指定即可解决问题. 修改如下: 找到 mysql. ...

  5. sqlserver日志文件缩小

    原文:sqlserver日志文件缩小        最近装了个500g的固态硬盘,导入我原来的数据库后发现有60多个G的内存不见了, 最后发现我的某个数据库有60多个G的日志文件(.ldf文件)文件, ...

  6. 使用PM2守护Nodejs命令行程序

    介绍 pm2是nodejs的一个带有负载均衡功能的应用进程管理器的模块,类似有Supervisor,forever,用来进行进程管理. 一.安装: <pre>npm install pm2 ...

  7. django发送邮箱

    要用django发送邮箱之前需要在setting中配置一下 EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 25 EMAIL_HOST_USER = 'xxx@qq.c ...

  8. python核心编程学习记录之正则表达式

  9. 关于并发,异步,非阻塞(python)疑惑的一些资料解答

    从iterable/iterator到generator到coroutine理解python的迭代器: http://python.jobbole.com/81916/理解python的生成器: ht ...

  10. 以lstm+ctc对汉字识别为例对tensorflow 中的lstm,ctc loss的调试

    #-*-coding:utf8-*- __author = "buyizhiyou" __date = "2017-11-21" ''' 单步调试,结合汉字的识 ...