PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像。 更加方便的是,PHP 可以直接将图像数据流输出到浏览器。 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP。 GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式。 你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000。如果联合 exif 扩展 一起使用, 你可以操作存储在 JPEG 和 TIFF 图像文件头部的信息, 这样就就可以获取数码相机所产生的元数据。 exif 相关的函数不需要 GD 库亦可使用。

可以使用phpinfo.php,获取GD库的安装配置信息:

GD 所支持的格式

格式 支持读取 支持写入 备注
JPEG TRUE TRUE GD 1.8+
PNG TRUE TRUE  
GIF TRUE TRUE GD 1.6 和 GD 2.0.28 之间的版本不支持
XBM TRUE TRUE PHP 4.0.1 开始支持读取,PHP 5.0.0 开始支持写入
XPM TRUE FALSE PHP 4.0.1 开始支持读取。Windows 平台上不可用。需要 PHP 绑定的 GD 库
WBMP TRUE TRUE GD 1.8+
WebP TRUE TRUE GD 2.1+, PHP 5.5+

GD和图像处理函数

•gd_info — 取得当前安装的 GD 库的信息
•getimagesize — 取得图像大小
•getimagesizefromstring — 从字符串中获取图像尺寸信息
•image_type_to_extension — 取得图像类型的文件后缀
•image_type_to_mime_type — 取得 getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的图像类型的 MIME 类型
•image2wbmp — 以 WBMP 格式将图像输出到浏览器或文件
•imageaffine — 返回经过仿射变换后的图像,剪切区域可选
•imageaffinematrixconcat — Concat two matrices (as in doing many ops in one go)
•imageaffinematrixget — Return an image containing the affine tramsformed src image, using an optional clipping area
•imagealphablending — 设定图像的混色模式
•imageantialias — 是否使用抗锯齿(antialias)功能
•imagearc — 画椭圆弧
•imagechar — 水平地画一个字符
•imagecharup — 垂直地画一个字符
•imagecolorallocate — 为一幅图像分配颜色
•imagecolorallocatealpha — 为一幅图像分配颜色 + alpha
•imagecolorat — 取得某像素的颜色索引值
•imagecolorclosest — 取得与指定的颜色最接近的颜色的索引值
•imagecolorclosestalpha — 取得与指定的颜色加透明度最接近的颜色
•imagecolorclosesthwb — 取得与给定颜色最接近的色度的黑白色的索引
•imagecolordeallocate — 取消图像颜色的分配
•imagecolorexact — 取得指定颜色的索引值
•imagecolorexactalpha — 取得指定的颜色加透明度的索引值
•imagecolormatch — 使一个图像中调色板版本的颜色与真彩色版本更能匹配
•imagecolorresolve — 取得指定颜色的索引值或有可能得到的最接近的替代值
•imagecolorresolvealpha — 取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值
•imagecolorset — 给指定调色板索引设定颜色
•imagecolorsforindex — 取得某索引的颜色
•imagecolorstotal — 取得一幅图像的调色板中颜色的数目
•imagecolortransparent — 将某个颜色定义为透明色
•imageconvolution — 用系数 div 和 offset 申请一个 3x3 的卷积矩阵
•imagecopy — 拷贝图像的一部分
•imagecopymerge — 拷贝并合并图像的一部分
•imagecopymergegray — 用灰度拷贝并合并图像的一部分
•imagecopyresampled — 重采样拷贝部分图像并调整大小
•imagecopyresized — 拷贝部分图像并调整大小
•imagecreate — 新建一个基于调色板的图像
•imagecreatefromgd2 — 从 GD2 文件或 URL 新建一图像
•imagecreatefromgd2part — 从给定的 GD2 文件或 URL 中的部分新建一图像
•imagecreatefromgd — 从 GD 文件或 URL 新建一图像
•imagecreatefromgif — 由文件或 URL 创建一个新图象。
•imagecreatefromjpeg — 由文件或 URL 创建一个新图象。
•imagecreatefrompng — 由文件或 URL 创建一个新图象。
•imagecreatefromstring — 从字符串中的图像流新建一图像
•imagecreatefromwbmp — 由文件或 URL 创建一个新图象。
•imagecreatefromwebp — 由文件或 URL 创建一个新图象。
•imagecreatefromxbm — 由文件或 URL 创建一个新图象。
•imagecreatefromxpm — 由文件或 URL 创建一个新图象。
•imagecreatetruecolor — 新建一个真彩色图像
•imagecrop — Crop an image using the given coordinates and size, x, y, width and height
•imagecropauto — Crop an image automatically using one of the available modes
•imagedashedline — 画一虚线
•imagedestroy — 销毁一图像
•imageellipse — 画一个椭圆
•imagefill — 区域填充
•imagefilledarc — 画一椭圆弧且填充
•imagefilledellipse — 画一椭圆并填充
•imagefilledpolygon — 画一多边形并填充
•imagefilledrectangle — 画一矩形并填充
•imagefilltoborder — 区域填充到指定颜色的边界为止
•imagefilter — 对图像使用过滤器
•imageflip — Flips an image using a given mode
•imagefontheight — 取得字体高度
•imagefontwidth — 取得字体宽度
•imageftbbox — 给出一个使用 FreeType 2 字体的文本框
•imagefttext — 使用 FreeType 2 字体将文本写入图像
•imagegammacorrect — 对 GD 图像应用 gamma 修正
•imagegd2 — 将 GD2 图像输出到浏览器或文件
•imagegd — 将 GD 图像输出到浏览器或文件
•imagegif — 输出图象到浏览器或文件。
•imagegrabscreen — Captures the whole screen
•imagegrabwindow — Captures a window
•imageinterlace — 激活或禁止隔行扫描
•imageistruecolor — 检查图像是否为真彩色图像
•imagejpeg — 输出图象到浏览器或文件。
•imagelayereffect — 设定 alpha 混色标志以使用绑定的 libgd 分层效果
•imageline — 画一条线段
•imageloadfont — 载入一新字体
•imagepalettecopy — 将调色板从一幅图像拷贝到另一幅
•imagepalettetotruecolor — Converts a palette based image to true color
•imagepng — 以 PNG 格式将图像输出到浏览器或文件
•imagepolygon — 画一个多边形
•imagepsbbox — 给出一个使用 PostScript Type1 字体的文本方框
•imagepsencodefont — 改变字体中的字符编码矢量
•imagepsextendfont — 扩充或精简字体
•imagepsfreefont — 释放一个 PostScript Type 1 字体所占用的内存
•imagepsloadfont — 从文件中加载一个 PostScript Type 1 字体
•imagepsslantfont — 倾斜某字体
•imagepstext — 用 PostScript Type1 字体把文本字符串画在图像上
•imagerectangle — 画一个矩形
•imagerotate — 用给定角度旋转图像
•imagesavealpha — 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息(与单一透明色相反)
•imagescale — Scale an image using the given new width and height
•imagesetbrush — 设定画线用的画笔图像
•imagesetinterpolation — Set the interpolation method
•imagesetpixel — 画一个单一像素
•imagesetstyle — 设定画线的风格
•imagesetthickness — 设定画线的宽度
•imagesettile — 设定用于填充的贴图
•imagestring — 水平地画一行字符串
•imagestringup — 垂直地画一行字符串
•imagesx — 取得图像宽度
•imagesy — 取得图像高度
•imagetruecolortopalette — 将真彩色图像转换为调色板图像
•imagettfbbox — 取得使用 TrueType 字体的文本的范围
•imagettftext — 用 TrueType 字体向图像写入文本
•imagetypes — 返回当前 PHP 版本所支持的图像类型
•imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件
•imagewebp — 将 WebP 格式的图像输出到浏览器或文件
•imagexbm — 将 XBM 图像输出到浏览器或文件
•iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中
•iptcparse — 将二进制 IPTC 块解析为单个标记
•jpeg2wbmp — 将 JPEG 图像文件转换为 WBMP 图像文件
•png2wbmp — 将 PNG 图像文件转换为 WBMP 图像文件

在Linux与Windows系统下都可以使用GD库,函数也是完全一致,但图形坐标会发生偏移。如果系统相互移植,必须重新查看界面。

在图像上绘制中文

<?php// 定义输出为图像类型header("content-type:image/gif");       // 创建画布$im = imagecreate(400, 200);     // 背景imagecolorallocate($im, 225, 66, 255);// 文本颜色$text_color = imagecolorallocate($im, 233, 14, 91);    $motto = "Test String 长白山";//imagestring 默认英文编码,只支持UTF-8//imagestring($im, 2, 0, 0, $motto, $text_color);//当代码文件为://ANSI编码,需要转换//UTF-8编码,不需要转换//$motto = iconv("gb2312", "utf-8", $motto);imageTTFText($im, 20, 0, 0, 100, $text_color, "c:/windows/fonts/simhei.ttf", $motto);  imagegif($im);imagedestroy($im);
?>

生成验证码

<?php
session_start();header("Content-type:image/png");
$imWidth = 70;
$imHeight= 18;
$im = imagecreate($imWidth, $imHeight);
imagecolorallocate($im, 255, 255, 255);srand(microtime() * 100000);
for($ix=0; $ix<4; $ix++)$number .= dechex(mt_rand(0, 15));$_SESSION[check_check] = $number;for($ix=0; $ix<4; $ix++)
{$x = $imWidth*$ix/ 4 + mt_rand(1, 8);$y = mt_rand(1, $imHeight / 4);$ft = mt_rand(3, 5);$cor = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200));imagestring($im, $ft, $x, $y, $_SESSION[check_check][$ix], $cor);
}
imagepng($im);
imagedestroy($im);
?>

PHP 使用GD库生成验证码 在图像上绘制汉字相关推荐

  1. Web前端技巧分享:教你用GD库生成验证码

    验证码相信大家都不会陌生,在网站登录的时候经常会遇到.那么你知道这个验证码是如何实现的吗?下面小千就为大家介绍一下这个GD库,还有一些常见的图片水印也是用GD实现的哦! GD库是什么? GD库是php ...

  2. PHP生产一个验证码图片,PHP使用GD库生成验证码图片,实现图片验证

    本文记录从php 下载配置GD图片生成库 到使用该库生成验证码图片,网页上实现验证码. 使用技术: php使用GD库绘图 [php版本7.3] php session 缓存 实现最终效果: 一. 配置 ...

  3. PHP:GD库 生成验证码图片

    文章来源:http://www.cnblogs.com/hello-tl/p/7592998.html <?php /*** __construct($new):构造函数创建一张图片$new-& ...

  4. PHP GD库生成图像的几个函数总结

    使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP四种图像格式.可以通过调用下面四个函数 ...

  5. php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...

    PHP GD库生成图像的几个函数总结 使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP ...

  6. php的验证码要gd库,PHP通过GD库实现验证码功能

    本文实例讲述了PHP通过GD库实现验证码功能,结合实例形式分析了php验证码相关图片绘制.输出操作实现技巧.分享给大家供大家参考,具体如下: 首先看看实现的效果: 具体实现: /*PHP实现验证码*/ ...

  7. php gd库 圆形头像,基于 GD 库生成圆形头像

    基于 GD 库生成圆形头像 laravel 友好的图片处理库 Intervention Image 可以绘制圆形(circle()), 但是好像并不能将即存的图片裁剪成圆形, 这里提供一个基于 GD ...

  8. php table生成图片,php不用GD库生成当前时间的PNG格式图象的程序

    php不用GD库生成当前时间的PNG格式图象的程序 更新时间:2008年09月28日 14:40:24   作者: 该程序是不用GD库可以生成当前时间的PNG格式图象,给人大开眼界,很有参考价值. t ...

  9. 【OpenCV 4开发详解】图像上绘制几何图形

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

最新文章

  1. 静态路由和默认路由的配置实例
  2. WebService 基础
  3. 访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
  4. Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解
  5. C++——获取array,vector,string的元素个数
  6. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--有BUG,注意看我的备注
  7. 使用Firebase、Angular 8和ASP.NET Core 3.1保护网站
  8. 新疆特岗计算机考试题,2020新疆特岗教师笔试资料领取(小学信息技术)
  9. python元组及文件
  10. 清理localstorage_清除浏览器localstorage的数据
  11. oracle创建只读视图语句,使用语句创建视图(6)——设置视图约束(check option)...
  12. JavaScript基础大总结
  13. 线性回归之最小二乘法公式推导和原理介绍
  14. linux 磁盘坏道修复,linux系统下检测硬盘上的坏道和坏块
  15. 日更第17天:Linux常用命令之ps用法
  16. 虚拟服务器 emule,web服务器配置emule功能详解
  17. 最新全国手机号码归属地信息SQLite数据库2019年2月更新
  18. 回溯(python)
  19. 怎么访问到别人的电脑?
  20. UML类图以及类与类之间的关系

热门文章

  1. 懒人精灵ocr文字查找工具的使用
  2. 阿里CTO鲁肃:技术的想象力不应设限,未来所有应用的核心都离不开数据和智能
  3. python urllib.parse.quote_urllib.parse.quote
  4. 【达摩院OpenVI】老片图像上色,一键开源体验
  5. 深入浅出 gRPC 02:gRPC 客户端创建和调用原理
  6. 齿轮泵、叶片泵、柱塞泵及螺杆泵的工作原理及特点
  7. HDUOJ 2042不容易系列之二
  8. ZBLOG打造的PHP程序系统及建站应用上的优点和缺点分析[图]
  9. freeswitch之conference音频部分记录
  10. python中,使用3σ原则来删除数据中的异常值