quidage / php8-iptc-manager
允许从 PHP8.* 中操作 IPTC 标签
v1.0.2
2021-09-22 08:04 UTC
Requires
- php: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.9
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-22 15:05:41 UTC
README
为什么以及它是什么
IPTC 标签 是可以包含在您所拍摄的图片中的标签(还记得 Instagram 吗?)
这个库提供了一个简单的接口来实现这一点,因为标准的 PHP 方法相当糟糕。
那么,让我们开始吧!
安装
安装非常典型 - 使用 composer
composer require ibudasov/php7-iptc-manager
如何使用
在开始使用之前,您必须创建 IPTC 标签管理器
// import the Manager class
use iBudasov\Iptc\Manager;
// ... and instantiate it!
$manager = Manager::create();
一旦您有管理器的实例,您需要指定要处理的文件。支持的文件类型为 ['jpg', 'jpeg', 'pjpeg']
,如果您尝试提供其他内容,将会抛出异常
$manager->loadFile('/tmp/proper-file.jpg');
创建 IPTC 标签
然后您可以添加一些 IPTC 标签。
有不同类型的 IPTC 标签,但您可以在 Tag
类中找到所有这些标签的常量。
您可以为每个标签指定多个值,这是由规范允许的,因此我们有值的数组
$manager->addTag(new Tag(Tag::AUTHOR, ['IGOR BUDASOV']));
$manager->write();
如果已存在具有相同名称的标签,将会抛出异常,因此您可以使用 Manager::deleteTag()
显式删除先前的值。
这是为了避免意外删除数据而设计的。是的,我们在考虑您数据的安全性!
读取 IPTC 标签
一旦您通过 loadFile()
加载所有包含的 IPTC 标签,它们将被加载到管理器中,因此您可以通过其 codename 获取任何标签。
如果此标签不存在,您将遇到异常。
$manager->getTag(Tag::AUTHOR)
...或者您可以一次性获取它们所有!
$manager->getTags();
删除 IPTC 标签
有时您想删除一个标签 - 这里是方法。
如果您试图删除一个不存在的标签,将会抛出异常。
$manager->deleteTag(Tag::AUTHOR);
$manager->write();
附言。
所有代码都经过很好的测试,但如果您发现错误,请随时与我联系!