frameright / image-metadata-parser
图像元数据解析库
1.1.2
2024-04-12 08:50 UTC
Requires
- php: >=5.5
- ext-xml: *
Requires (Dev)
- mockery/mockery: ~1.6
- phpcompatibility/php-compatibility: ^9.3.5
- phpunit/phpunit: ^9.5.25
This package is auto-updated.
Last update: 2024-09-23 17:02:50 UTC
README
图像元数据解析库(PHP 5.5+)
➡️ 查看此文档在 docs.frameright.io/php 的渲染效果
注意:此库基于 dchesterton/image 开发。感谢 dchesterton!
支持的图像类型
- JPEG
- PNG
WEBP
支持的图像元数据类型
- XMP
- IPTC
EXIF
注意:此库的 TypeScript 等价库可在此处找到 here。
安装
使用以下 composer.json
将库拉入您的项目中,通过 Composer
{ "minimum-stability": "dev", "repositories": [ { "type": "vcs", "url": "https://github.com/Frameright/php-image-metadata-parser.git" } ], "require": { "frameright/image-metadata-parser": "dev-master" } }
依赖: php-xml
用法
✨ 入门指南
🔧 贡献
📝 教程
📝 变更日志
获取元数据
$image = Image::fromFile($filename); $headline = $image->getXmp()->getHeadline(); $camera = $image->getExif()->getCamera(); ...
加载特定图像类型
当已知文件类型时,您可以直接使用文件类型的 fromFile
方法加载文件类型。
$jpeg = JPEG::fromFile('image.jpg'); $png = PNG::fromFile('image.png');
从字节实例化
如果您没有文件可用,但您有图像存储在字符串中(来自数据库、ImageMagick 等),您可以从字符串中轻松实例化一个对象。
$data = ... $jpeg = JPEG::fromString($data);
从 GD 或流实例化
您还可以从 GD 资源或流创建一个对象。
$gd = imagecreate(100, 100); $jpeg = JPEG::fromResource($gd);
$stream = fopen('...', 'r+'); $jpeg = JPEG::fromStream($stream);
聚合元数据
当只想获取一些元数据而不关心它来自 XMP、IPTC 或 EXIF 时,您可以使用聚合元数据对象。
$image = Image::fromFile($filename); $headline = $image->getAggregate()->getHeadline();
默认情况下,它首先检查 XMP,然后是 IPTC,然后是 EXIF,但您可以更改优先级
$aggregate = $image->getAggregate(); $aggregate->setPriority(['exif', 'iptc', 'xmp']); $aggregate->getHeadline(); // will now check EXIF first, then IPTC, then XMP
您还可以排除不希望使用的元数据类型
$aggregate->setPriority(['iptc', 'xmp']); $aggregate->getHeadline(); // will only check IPTC and XMP
获取 GPS 数据
$image = ... $gps = $image->getAggregateMeta()->getGPS(); // checks EXIF and XMP // or $gps = $image->getExif()->getGPS(); $lat = $gps->getLatitude();