CakeFest 2024: The Official CakePHP Conference

简介

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIFPNGJPEGWBMP 以及 XPM 在内的多种格式的图像。 更加方便的是,PHP 可以直接将图像数据流输出到浏览器。 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP。 GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式。

你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEGGIFPNGSWFTIFFJPEG2000

如果联合 exif 扩展 一起使用, 你可以操作存储在 JPEGTIFF 图像文件头部的信息, 这样就就可以获取数码相机所产生的元数据。 exif 相关的函数不需要 GD 库亦可使用。

注意: 关于如何扩展图像处理能力,例如读取、写入以及修改, 请参考“需求”一节。 要想读取数码相机拍摄的图片的元数据, 你需要上面提到的 exif 扩展

注意: getimagesize() 函数不需要 GD 扩展库。

警告

由于绑定的 GD 库使用 Zend 内存管理机制来分配内存, 所以所使用的内存大小不受 memory_limit 配置参数限制。

GD 库支持多种图像格式, 下标所列的是 GD 所支持的格式,请注意备图像格式对应的读取/写入支持的可用性。

GD 所支持的格式
格式 支持读取 支持写入 备注
JPEG true true  
PNG true true  
GIF true true  
XBM true true  
XPM true false  
WBMP true true  
WebP true true  
BMP true true 从 PHP 7.2.0 开始支持

很遗憾的是,虽然上表中显示大部分图像格式都是支持读取和写入的, 但是不代表你的 PHP 环境在编译的时候是支持这些操作的。 要想检测 GD 库所支持的格式,请使用 gd_info() 函数, 更多信息请参考 “安装” 一章。

add a note

User Contributed Notes 1 note

up
-24
gamesparamundo123 at gmail dot com
4 years ago
The EXIF extension has been updated to support a much larger range of formats. This means that their format specific tags are now properly translated when parsing images with the exif_read_data() function. The following new formats are now supported:

Samsung
DJI
Panasonic
Sony
Pentax
Minolta
Sigma/Foveon
AGFA
Kyocera
Ricoh
Epson
The EXIF functions exif_read_data() and exif_thumbnail() now support passing streams as their first argument.
To Top