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库生成验证码 在图像上绘制汉字,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP中使用clone关键字创建对象副本,并通过\_\_clone魔法方法定制克隆行为。1.使用clone关键字进行浅拷贝,克隆对象的属性但不克隆对象属性内的对象。2.通过\_\_clone方法可以深拷贝嵌套对象,避免浅拷贝问题。3.注意避免克隆中的循环引用和性能问题,优化克隆操作以提高效率。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

HTTP缓存头的关键玩家包括Cache-Control、ETag和Last-Modified。1.Cache-Control用于控制缓存策略,示例:Cache-Control:max-age=3600,public。2.ETag通过唯一标识符验证资源变化,示例:ETag:"686897696a7c876b7e"。3.Last-Modified指示资源最后修改时间,示例:Last-Modified:Wed,21Oct201507:28:00GMT。

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)