一文看懂 GD2库

简介: 一文看懂 GD2库

文章目录


一、 GD2简介

php语言本身没办法直接操作图片,但是需要安装一些扩展库,有很多,但是常用的是GD2库。

GD2库实际上主要用在下面几个方面:

1、 验证码(实际上是一个img)

美食杰的注册页

2、 水印图

3、 缩略图


二、 GD2库使用步骤

2.1添加扩展

我们的phpstudy集成环境下是默认安装了php_gd2.dll文件,如果没有自己百度搜索一下,把下载的dll文件放在你的对应版本的ext目录下。

2.2修改php配置文件

我们直接在目录下找到配置文件双击打开

或者通过phpstudy打开

按住ctrl+f搜索extension=php_gd2.dll文件,把前面的分号去掉

2.3重启服务


三、 GD2里面的常用方法

3.1 imagecreate

imagecreate(宽,高)是新建一个基于调色板的图像,本质上就是创建一个画布。默认是透明色

3.2 imagecolorallocate

imagecolorallocate(画布资源,red,gren,blue);

注意红绿蓝是RGB的色值,每一个取值范围是0-255

3.3 imagefill

imagefill(画布资源,x轴坐标,用轴坐标,填充的颜色)

注意图像的左上角默认是0,0点

3.4 输出图像资源

imagepng()是输出png格式图像到浏览器

imagejpeg()是输出jpeg格式图像到浏览器

imagegif()是输出gif格式图像到浏览器

如果直接输出是乱码

因为浏览器默认是解析成html标签,不识别图像,所以加上header头识别

3.5创建真彩画布

imagecreatetruecolor(宽,高)创建一个真彩的图像资源,默认是黑色的

imagepng可以设置两个参数

如果imagepng()设置了一个参数是把图像资源直接在浏览器输出,如果设置了第二个参数代表把图片保存成自己定义的文件名。

3.6在图像中写文字

3.6.1imagettftext

imagettftext — 用 TrueType 字体向图像写入文本

我们在自己的计算机c盘/windows/fonts/里面有各种内置的字体

我们随意复制一个文件放在自己的项目文件夹下面

显示效果如下:

这个方法也可以输出中文

3.6.2imagestring

imagestring — 水平地画一行字符串,输中文会乱码,只能输出字符。

这个方法字符的左上角为0,0点,不用设置字体格式,默认使用内置字体

总结如下:

1、

imagettftext不仅能输出英文字符还能输出中文

imagestring只能输出英文,如果是中文是解析后的乱码

2、imagettftext是文字的左小角为0,0点。

imagestring文字的左上角为0,0点

4、 imagettftext等加入字体文件格式,imagestring使用默认字体

3.7在图像中写横线

imageline(图像资源,开始点的x坐标,开始点的y坐标,结束点的x坐标,结束点的y坐标,线条颜色)

3.8在图像中画矩形

imagerectangle(图像资源,左上角的x和y坐标,右下角的x和y坐标,矩形颜色);

3.9在图像中画弧度

参数说明如下:

4.0 imagecreatefrompng/jpeg/gif

4.2getimagesize

getimagesize()是返回的关于图像大小以及类型相关信息的数组

第一个参数:宽

第二个参数:高

第三个参数:给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG

最后一个参数:是图像类型

4.2imagecopy

imagecopy(目标图像资源,源图像资源,放在目标位置的x和y坐标,原图截取开始的x和y坐标,截取原图的宽度和高度)


四、 验证码案例

4.1验证码第一版

4.2回顾生成四位随机数

rand(开始数字,结束数字)会随机生成一个开始到结束范围内的数字

在这里插入图片描述

4.3验证码第二版

生成效果如下:

然后我们生成随机的颜色,修改如下:

4.4点击按钮切换图片

4.5点击按钮切换验证码

因为浏览器有一个缓存机制,就是访问同一个文件的时候就不会去给服务器发请求,从缓存里读取,所以导致我们点击按钮的没有作用,还是访问的以前缓存的那个图片,我们采取拼接参数的形式

所以我们更改代码如下:


五、 水印图


相关文章
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
605 0
|
2月前
|
缓存 JSON API
SnapTranslate轻量划词翻译工具:开箱即用的外文阅读神器(详细教程+原理拆解)
SnapTranslate是一款轻量开源的划词翻译工具,基于Python开发,支持Windows全场景(PDF/Word/网页等)。选中文本+Ctrl+L秒出翻译,悬浮窗就近提示+日志记录,无广告、不占内存、极简高效。代码已开源,新手可轻松定制。
491 2
|
3月前
|
存储 人工智能 安全
OpenClaw更新:9大新功能、50+Bug修复,附新版OpenClaw阿里云+本地部署及新功能实战攻略
2026年2月27日,OpenClaw迎来史诗级更新——v2026.2.26版本携近100项更新重磅发布,涵盖9大新功能、50+Bug修复,20+贡献者参与共建,40+PR合并,创下历史更新规模纪录。本次更新不仅实现安全性与架构能力的跨越式升级,更新增Android节点支持、外部密钥管理等核心功能,彻底重构Agent协作模式。本文将详解**2026年阿里云OpenClaw超简单部署流程**与**本地私有化部署方案**,深度拆解新版本5大重磅功能的实战用法,附带完整代码命令与避坑指南,帮助新老用户快速解锁AI协作新范式。
2585 2
|
Rust 数据可视化 网络安全
一款高颜值、现代化的 Git 可视化管理工具
GitButler 是由 GitHub 联合创始人 Scott Chacon 开源的 Git 客户端,采用 Tauri/Rust/Svelte 构建。它支持虚拟分支、轻松提交管理、GitHub 集成、SSH 密钥管理和 AI 工具等功能,目前仅支持 macOS 和 Linux 平台。用户可以通过拖拽方式快速聚合多个分支的改动,实现灵活的跨分支操作。
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
141694 65
|
应用服务中间件 Apache nginx
pbootcms伪静态教程
pbootcms伪静态教程
|
小程序 API 开发者
【异常解决】“errcode“:47003,“errmsg“:“argument invalid! data.date4.value invalid rid:xxxxxx
【异常解决】“errcode“:47003,“errmsg“:“argument invalid! data.date4.value invalid rid:xxxxxx
2347 0
【异常解决】“errcode“:47003,“errmsg“:“argument invalid! data.date4.value invalid rid:xxxxxx
|
域名解析 缓存 安全
图解域名解析成IP的全过程(你浏览器摁下一个网址后发生了啥?)
图解域名解析成IP的全过程(你浏览器摁下一个网址后发生了啥?)
1588 0

热门文章

最新文章