IPTC tags are tags, which you can include in a picture you have taken (remember Instagram?)
This library provides simple interface to do that, because standard PHP way sucks a lot.
So, let's get started!
Installation is quite typical - with composer:
composer require ibudasov/php7-iptc-manager
Before usage you have to create the IPTC tags manager:
// import the Manager class
use iBudasov\Iptc\Manager;
// ... and instantiate it!
$manager = Manager::create();
Once you have an instance of the Manager - you'll need to specify the file to work with.
['jpg', 'jpeg', 'pjpeg']
file types are supported, and if you try to feed something else - exception will be thrown
$manager->loadFile('/tmp/proper-file.jpg');
Then you can add some IPTC tags.
There are different kinds of IPTC tags, but for all of them you'll find a constant in Tag
class.
You can specify multiple values for each tag, it is allowed by specification, so we have array of values:
$manager->addTag(new Tag(Tag::AUTHOR, ['IGOR BUDASOV']));
$manager->write();
If a tag with the same name already exists - an exception will be thrown, so you can use Manager::deleteTag()
to explicitly remove previous value.
It was made to avoid accidental removing of data. Yes, we were thinking about safety of your data!
Once you loadFile()
all the included IPTC tags will be loaded to the Manager, so you can retrieve any tag by it's codename.
If this tag doesn't exist - you'll experience an exception.
$manager->getTag(Tag::AUTHOR)
...or you can get them all at once!
$manager->getTags();
Sometimes you want to delete a tag - here is the way.
If you're trying to delete a tag which does not exist - exception will be thrown.
$manager->deleteTag(Tag::AUTHOR);
$manager->write();
All the code is nicely covered by tests, but if you find a bug - feel free to contact me!