ibudasov/php7-iptc-manager

允许从 PHP7.* 操作 IPTC 标签

v1.0.0 2018-05-19 15:14 UTC

This package is auto-updated.

Last update: 2024-09-05 05:22:02 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 标签,它们将被加载到管理器中,因此您可以按其代码名称检索任何标签。

如果此标签不存在,您将遇到异常。

$manager->getTag(Tag::AUTHOR)

...或者您可以一次性获取它们所有!

$manager->getTags();

删除一个 IPTC 标签

有时您想删除一个标签,这里就是方法。

如果您尝试删除一个不存在的标签,将会抛出异常。

$manager->deleteTag(Tag::AUTHOR);
$manager->write();

附言。

所有代码都经过良好的测试覆盖,但如果您发现一个错误,请随时联系我!