quidage/php8-iptc-manager

允许从 PHP8.* 中操作 IPTC 标签

v1.0.2 2021-09-22 08:04 UTC

This package is auto-updated.

Last update: 2024-09-22 15:05:41 UTC


README

CircleCI Maintainability Test Coverage Latest Version on Packagist MIT licensed

为什么以及它是什么

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();

附言。

所有代码都经过很好的测试,但如果您发现错误,请随时与我联系!