🗣 Wd提问: php gd库
🤖 Ai回答: PHP GD 库(Graphics Draw)是一个用于动态创建和处理图像的扩展库。它支持多种图像格式(如 JPEG、PNG、GIF、WBMP 和 XPM),可以用来生成缩略图、添加水印、绘制图形、调整颜色、旋转图像等。
🔧 一、GD 库简介
官方文档:https://www.php.net/manual/zh/book.image.php
功能:
创建画布
绘制线条、矩形、圆形、多边形
添加文字(支持 TrueType 字体)
图像缩放、裁剪、旋转
颜色操作
添加水印(文字或图片)
输出或保存图像
⚠️ 注意:GD 不是默认启用的,需要在 PHP 中安装并启用。
✅ 二、检查 GD 是否启用
php
<?php
if (extension_loaded('gd')) {
echo GD 扩展已启用<br;
print_r(gd_info());
} else {
echo GD 扩展未启用,请安装!;
}
?
🛠️ 三、常见用法示例
1、创建一个简单图像(输出到浏览器)
php
<?php
// 设置标头为图片类型
header(Content-type: image/png);
// 创建一个 200x100 的图像
$im = imagecreatetruecolor(200, 100);
// 分配颜色
$bg = imagecolorallocate($im, 255, 255, 255); // 白色背景
$text_color = imagecolorallocate($im, 0, 0, 0); // 黑色文字
// 填充背景
imagefilledrectangle($im, 0, 0, 199, 99, $bg);
// 写入文本
imagestring($im, 5, 50, 40, 'Hello GD!', $text_color);
// 输出 PNG 图像
imagepng($im);
// 释放内存
imagedestroy($im);
?
2、添加文字水印(使用 TrueType 字体)
php
<?php
$imagePath = 'photo.jpg';
$fontPath = 'arial.ttf'; // 确保字体文件存在
// 加载图像
$im = imagecreatefromjpeg($imagePath);
// 文字水印
$text = '© MySite.com';
$color = imagecolorallocatealpha($im, 255, 255, 255, 50); // 半透明白
// 获取图像尺寸
$width = imagesx($im);
$height = imagesy($im);
// 设置字体大小,获取文本框大小
$fontSize = 20;
$bbox = imagettfbbox($fontSize, 0, $fontPath, $text);
$textWidth = $bbox[2] $bbox[0];
$x = $width $textWidth 10;
$y = $height 10;
// 添加文字
imagettftext($im, $fontSize, 0, $x, $y, $color, $fontPath, $text);
// 输出图像
header('Content-Type: image/jpeg');
imagejpeg($im, null, 90); // 质量 90%
// 释放
imagedestroy($im);
?
3、生成缩略图
php
<?php
function createThumbnail($source, $dest, $maxWidth = 200, $maxHeight = 200) {
list($origWidth, $origHeight, $type) = getimagesize($source);
switch ($type) {
case IMAGETYPE_JPEG:
$srcImg = imagecreatefromjpeg($source);
break;
case IMAGETYPE_PNG:
$srcImg = imagecreatefrompng($source);
break;
case IMAGETYPE_GIF:
$srcImg = imagecreatefromgif($source);
break;
default:
return false;
}
// 计算缩放比例
$ratio = min($maxWidth / $origWidth, $maxHeight / $origHeight);
$newWidth = intval($origWidth * $ratio);
$newHeight = intval($origHeight * $ratio);
// 创建新图像
$thumb = imagecreatetruecolor($newWidth, $newHeight);
imagealphablending($thumb, false);
imagesavealpha($thumb, true);
// 缩放
imagecopyresampled($thumb, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $origWidth, $origHeight);
// 保存
imagepng($thumb, $dest); // 可改为 imagejpeg 或 imagegif
imagedestroy($srcImg);
imagedestroy($thumb);
return true;
}
// 使用
createThumbnail('original.jpg', 'thumb.png', 150, 150);
echo 缩略图已生成!;
?
4、图像旋转
php
<?php
$im = imagecreatefromjpeg('photo.jpg');
$angle = 180; // 旋转角度
$transparent = 0; // 无透明色
$rotated = imagerotate($im, $angle, 0); // 黑色背景
header('Content-Type: image/jpeg');
imagejpeg($rotated);
imagedestroy($im);
imagedestroy($rotated);
?
🧩 四、常用函数列表
| 函数 | 说明 |
| `imagecreate()` / `imagecreatetruecolor()` | 创建画布 |
| `imagecolorallocate()` | 分配颜色 |
| `imagefilledrectangle()` | 填充矩形 |
| `imagestring()` | 写入字符串(内置字体) |
| `imagettftext()` | 写入 TrueType 文字 |
| `imagecopyresampled()` | 高质量图像缩放 |
| `imagepng()`, `imagejpeg()`, `imagegif()` | 输出图像 |
| `imagedestroy()` | 释放图像资源 |
| `imagecreatefromjpeg/png/gif()` | 从文件加载图像 |
⚙️ 五、安装 GD 扩展(Linux 示例)
Ubuntu/Debian:
bash
sudo apt-get install php-gd
sudo systemctl restart apache2
或如果使用 PHP-FPM:sudo systemctl restart php-fpm
CentOS/RHEL:
bash
sudo yum install php-gd
或 dnf install php-gd
sudo systemctl restart httpd
Windows:
打开 `php.ini`
去掉 `;extension=gd` 前面的分号
重启 Web 服务器
❗ 六、注意事项
1、内存消耗大:处理大图时可能超限,可增加 `ini_set('memory_limit', '256M');`
2、字体路径问题:确保 `.ttf` 文件路径正确(Windows/Linux 路径不同)
3、权限问题:保存图像时目录要有写权限
4、中文乱码:使用支持中文的字体(如 `simhei.ttf`)
📦 七、替代方案(推荐现代项目)
虽然 GD 很基础,但更复杂的图像处理建议使用:
[Intervention Image](http://image.intervention.io/):Laravel 默认使用的图像处理库,支持 GD 和 Imagick 驱动。
Imagick(ImageMagick 扩展):功能更强,支持更多格式和特效(需额外安装)
如果你有具体需求(比如“如何给图片加边框”、“如何生成验证码”),欢迎继续提问,我可以提供完整代码示例!
📣 商家广告:





0
IP地址: 225.62.149.47
搜索次数: 0
提问时间: 2025-10-30 13:02:20
🛒 域名购买:
gzzc.net
zhansou.com.cn
wt.cx
65.hk
9-9.net
oa5.cn
46.gold
75.gold
pmmm.com.cn
3.ln.cn
❓️ 热门提问:
包头服务器租用
谷歌关键词广告预算优化
搬瓦工主机
SEO工具评测报告
hn域名
机房数据中心
超级云计算
查看云服务器配置
我的定位服务在哪里打开
重庆托管
豌豆Ai站群搜索引擎系统
🌐 域名评估:
02.gs
pdwd.cn
aj.cq.cn
mqwy.cn
oppo.college
drone.js.cn
alibaba.com
3q.gd.cn
rr.ha.cn
le.jl.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
贵州用友地址
网址尋找器
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。