PHP 使用GD库生成验证码 在图像上绘制汉字
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库生成验证码 在图像上绘制汉字相关推荐
- Web前端技巧分享:教你用GD库生成验证码
验证码相信大家都不会陌生,在网站登录的时候经常会遇到.那么你知道这个验证码是如何实现的吗?下面小千就为大家介绍一下这个GD库,还有一些常见的图片水印也是用GD实现的哦! GD库是什么? GD库是php ...
- PHP生产一个验证码图片,PHP使用GD库生成验证码图片,实现图片验证
本文记录从php 下载配置GD图片生成库 到使用该库生成验证码图片,网页上实现验证码. 使用技术: php使用GD库绘图 [php版本7.3] php session 缓存 实现最终效果: 一. 配置 ...
- PHP:GD库 生成验证码图片
文章来源:http://www.cnblogs.com/hello-tl/p/7592998.html <?php /*** __construct($new):构造函数创建一张图片$new-& ...
- PHP GD库生成图像的几个函数总结
使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP四种图像格式.可以通过调用下面四个函数 ...
- php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...
PHP GD库生成图像的几个函数总结 使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP ...
- php的验证码要gd库,PHP通过GD库实现验证码功能
本文实例讲述了PHP通过GD库实现验证码功能,结合实例形式分析了php验证码相关图片绘制.输出操作实现技巧.分享给大家供大家参考,具体如下: 首先看看实现的效果: 具体实现: /*PHP实现验证码*/ ...
- php gd库 圆形头像,基于 GD 库生成圆形头像
基于 GD 库生成圆形头像 laravel 友好的图片处理库 Intervention Image 可以绘制圆形(circle()), 但是好像并不能将即存的图片裁剪成圆形, 这里提供一个基于 GD ...
- php table生成图片,php不用GD库生成当前时间的PNG格式图象的程序
php不用GD库生成当前时间的PNG格式图象的程序 更新时间:2008年09月28日 14:40:24 作者: 该程序是不用GD库可以生成当前时间的PNG格式图象,给人大开眼界,很有参考价值. t ...
- 【OpenCV 4开发详解】图像上绘制几何图形
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
最新文章
- 静态路由和默认路由的配置实例
- WebService 基础
- 访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
- Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解
- C++——获取array,vector,string的元素个数
- 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--有BUG,注意看我的备注
- 使用Firebase、Angular 8和ASP.NET Core 3.1保护网站
- 新疆特岗计算机考试题,2020新疆特岗教师笔试资料领取(小学信息技术)
- python元组及文件
- 清理localstorage_清除浏览器localstorage的数据
- oracle创建只读视图语句,使用语句创建视图(6)——设置视图约束(check option)...
- JavaScript基础大总结
- 线性回归之最小二乘法公式推导和原理介绍
- linux 磁盘坏道修复,linux系统下检测硬盘上的坏道和坏块
- 日更第17天:Linux常用命令之ps用法
- 虚拟服务器 emule,web服务器配置emule功能详解
- 最新全国手机号码归属地信息SQLite数据库2019年2月更新
- 回溯(python)
- 怎么访问到别人的电脑?
- UML类图以及类与类之间的关系
热门文章
- 懒人精灵ocr文字查找工具的使用
- 阿里CTO鲁肃:技术的想象力不应设限,未来所有应用的核心都离不开数据和智能
- python urllib.parse.quote_urllib.parse.quote
- 【达摩院OpenVI】老片图像上色,一键开源体验
- 深入浅出 gRPC 02:gRPC 客户端创建和调用原理
- 齿轮泵、叶片泵、柱塞泵及螺杆泵的工作原理及特点
- HDUOJ 2042不容易系列之二
- ZBLOG打造的PHP程序系统及建站应用上的优点和缺点分析[图]
- freeswitch之conference音频部分记录
- python中,使用3σ原则来删除数据中的异常值