23

在我们的网站上,我们从各种来源上传了大量照片。

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

mogrify -strip image.jpg

我们想要做的是将一些基本的 exif 数据(版权 Initrode 等)插入到这个新的“干净”图像中,但我似乎在文档中找不到任何可以实现这一点的东西。

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

如果不能通过 imagemagick 完成,那么基于 PHP 的解决方案将是下一个最好的选择!

谢谢。

4

6 回答 6

14

Exiftool看起来很适合您。

我还没有尝试过,但我现在很想去修复我所有标记为 01/01/2074 的蜜月照片,因为我忘记在电池耗尽后重置日期。

于 2008-10-23T12:01:15.120 回答
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
于 2008-10-23T16:42:33.663 回答
6

这是一个PHP Exif 库,应该可以满足您的需要。

PHP Exif 库 (PEL) 可让您完全操作 Exif(可交换图像文件格式)数据。这是数码相机在其图像中放置的数据,例如日期和时间、快门速度、ISO 值等。

使用 PEL,可以完全修改 Exif 数据,这意味着它可以读写。全新的 Exif 数据也可以添加到图像中。PEL 完全用 PHP 编写,除了 PHP 的标准安装,版本 5 之外什么都不依赖。PEL 托管在 SourceForge 上。

于 2008-10-23T12:05:46.827 回答
5

在linux上有一个叫做jhead的程序。它可以使用以下命令添加最小的 exif 标头:

jhead -mkexif img.jpg

于 2010-01-08T19:11:48.837 回答
1

我怀疑你会通过删除 Exif 信息获得很多空间......

无论如何,我可能是错的,但 Exif 元数据更多地属于存储技术(和上下文)信息。对于版权等内容,您应该改用 IPTC。

显然,使用 ImageMagick 可以做到这一点:使用 ImageMagick将 IPTC 数据写入 Jpeg

于 2008-10-23T15:23:10.627 回答
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) 的完整列表。

于 2017-09-12T14:57:08.523 回答