在我们的网站上,我们收到了大量从各种来源上传的照片。
为了缩小文件大小,我们使用exif data从源中删除所有mogrify:
mogrify -strip image.jpg
我们希望能够做的是将一些基本的exif数据(版权所有Initrode等)插回到这个新的“干净”图像中,但我似乎无法在文档中找到任何可以实现的内容此
有没有人有这方面的经验?
如果无法通过imagemagick完成,那么基于PHP的解决方案将成为下一个最佳选择!
感谢。
答案 0 :(得分:13)
您可以节省大量空间,特别是如果您有大量图片..
将以下内容添加到text.txt(从here获取的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
答案 1 :(得分:12)
Exiftool看起来与您完全匹配。
我还没有尝试过,但我现在很想去修复所有标记为01/01/2074的蜜月照片,因为我忘记在电池耗尽后重置日期。
答案 2 :(得分:6)
这是PHP Exif Library应该做你需要的。
PHP Exif Library(PEL)可以帮助你 完全操纵Exif(可交换 图像文件格式)数据。这是 数码相机所放置的数据 他们的形象,如日期和 时间,快门速度,ISO值等 上。
使用PEL,可以完全修改 Exif数据,意味着它可以是两者 读写。完全新的Exif 数据也可以添加到图像中。 PEL 完全用PHP编写 除了标准之外什么都不依赖 安装PHP,版本5. PEL是 在SourceForge上托管。
答案 3 :(得分:5)
jhead -mkexif img.jpg
答案 4 :(得分:1)
我怀疑你会通过删除Exif信息获得大量空间......
无论如何,我可能是错的,但Exif元数据更多地属于存储技术(和上下文)信息。对于像版权这样的东西,你应该使用IPTC。
显然,使用ImageMagick可以做到这一点:Write IPTC Data to Jpeg with ImageMagick。
答案 5 :(得分:0)
您可以使用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');
您可以找到所有支持的EXIF数据(PelTag)in the PEL docs的完整列表。