如何向图像添加exif数据?

23

我们的网站上有许多来自各种来源上传的照片。

为了减小文件大小,我们使用 mogrify 去除所有源文件的 exif 数据

mogrify -strip image.jpg

我们希望能够将一些基本的 exif 数据(如版权信息等)插入到这张新的“干净”图像中,但我似乎找不到任何能够实现此功能的文档。

有没有人有过这样的经验?

如果无法通过 imagemagick 实现,那么基于 PHP 的解决方案将是下一个最好的选择!

谢谢。

6个回答

14
你可以节省大量的空间,特别是当你有大量的图片时。将以下内容添加到text.txt中(IPTC标签格式取自此处):
2#110#Credit="My Company"
2#05#Object Name="THE_OBJECT_NAME"
2#55#Date Created="2011-02-03 12:45"
2#80#By-line="BY-LINE?"
2#110#Credit="The CREDIT"
2#115#Source="SOURCE"
2#116#Copyright Notice="THE COPYRIGHT"
2#118#Contact="THE CONTACT"
2#120#Caption="AKA Title"

从图像中删除所有现有的exif数据

mogrify -strip image.jpg

将信用添加到您的图像
mogrify -profile 8BIMTEXT:text.txt image.jpg

谁知道添加主题标签的语法,请更新解决方案。 - Arie Skliarouk

14

Exiftool 看起来是您的完美选择。

虽然我没有试过,但我现在很想去修复我的蜜月照片,因为我忘记在电池耗尽后重置日期,导致日期显示为 01/01/2074。


谢谢 - 顶级技巧。让我摆脱了困境。 - Greg Whitfield

6
这里有一个PHP Exif库,可以满足你的需求。
PHP Exif库(PEL)允许您完全操作Exif(可交换图像文件格式)数据。这是数码相机在其图像中放置的数据,例如日期和时间、快门速度、ISO值等。
使用PEL,可以完全修改Exif数据,这意味着它既可以读取又可以写入。也可以向图像添加全新的Exif数据。PEL完全用PHP编写,除了标准安装的PHP版本5之外不需要任何依赖。PEL托管在SourceForge上。

那个链接现在已经失效了。 - GreenMatt

5
在Linux系统中,有一个名为jhead的程序。它可以通过以下命令添加最小化的exif头部信息:
jhead -mkexif img.jpg

1
你可以直接使用 PEL 库在 PHP 中完成此操作。只需简单地覆盖现有的 EXIF 标头即可。
// Load image data
$data = new PelDataWindow(file_get_contents('IMAGE PATH'));

// Prepare image data
$jpeg = $file = new PelJpeg();
$jpeg->load($data);

// Create new EXIF-headers, overwriting any existing ones (when writing to disk)
$exif = new PelExif();
$jpeg->setExif($exif);
$tiff = new PelTiff();
$exif->setTiff($tiff);

// Create Ifd-data that will hold EXIF-tags
$ifd0 = new PelIfd(PelIfd::IFD0);
$tiff->setIfd($ifd0);

// Create EXIF-data for copyright
$make = new PelEntryAscii(PelTag::COPYRIGHT, '2008-2017 Conroy');
$ifd0->addEntry($make);

// Add more EXIF-data...

// Save to disk
$file->saveFile('IMAGE.jpg');

你可以在PEL文档的这里找到所有支持的EXIF数据(PelTag)的完整列表。

1

我不认为删除Exif信息会让你获得更多的空间...

无论如何,我的看法可能是错误的,但Exif元数据更适合存储技术(和背景)信息。对于版权之类的内容,你应该使用IPTC。

显然,这是一件你可以用ImageMagick完成的事情:使用ImageMagick将IPTC数据写入Jpeg格式图像


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接