我正在使用exiftool的shell脚本自动更改某个文件夹中包含的图片上的一些exif标签,我想在作业完成时使用输出在我的NAS(QNAP)上获取通知.
一切正常,但是 - 当通知系统截断消息时 - 我希望只收到我需要的信息,即shell输出的最后一行,例如以下内容:
Warning: [minor] Entries in IFD0 were out of sequence. Fixed. - 2015-07-12 15.41.06.jpg
4512 files failed condition
177 image files updated
Run Code Online (Sandbox Code Playgroud)
问题是目前我只收到以下通知:
在相机上完成Exiftool cronjob:4512文件失败
我想要的是:
在相机上完成Exiftool cronjob:更新了177个图像文件
该脚本如下:
#!/bin/sh
# exiftool script for 2002 problem
dir="/share/Multimedia/Camera"
cd "$dir"
FOLDER="$(printf '%s\n' "${PWD##*/}")"
OUTPUT="$(exiftool -overwrite_original -r '-CreateDate<DateTimeOriginal' -if '$CreateDate eq "2002:12:08 12:00:00"' -if '$DateTimeOriginal ne $CreateDate' *.[Jj][Pp][Gg])"
/sbin/notice_log_tool -a "Exiftool cronjob completed on ${FOLDER}: ${OUTPUT}" --severity=5
exit 0
Run Code Online (Sandbox Code Playgroud)
为此,我使用|使用$ OUTPUT变量 尾巴-1,但可能我犯了一些基本错误,我得到的结果如下:
在相机上完成Exiftool cronjob:4512文件条件失败| 尾巴-1
如何以正确的方式做到这一点?谢谢
我有两个型号:
Event.js:
export default Model.extend({
checked : attr({ defaultValue: false }),
isActive : attr(),
createdAt : attr(),
updatedAt : attr(),
start : attr(),
end : attr(),
menPrice : attr(),
womenPrice : attr(),
information : attr(),
meetingPoint : attr(),
title : attr(),
hiw : attr(),
tip : attr(),
bookings : hasMany('booking', { async: true})
});
Run Code Online (Sandbox Code Playgroud)
和Booking.js:
export default Model.extend({
checked : attr({ defaultValue: false }),
isActive : attr(),
createdAt : attr(),
updatedAt : attr(),
participants : attr(),
email : attr(),
locale …Run Code Online (Sandbox Code Playgroud) 如何从文件夹及其子文件夹内的所有文件中删除所有元数据?
我已经尝试了几个命令但没有成功。所有这些都与特定的文件扩展名相关联和/或没有遍历其中的所有子文件夹。
为了减少网站中使用的图像尺寸,我将质量降低到80-85%.这在很大程度上减小了图像尺寸.
为了在不影响质量的情况下进一步缩小尺寸,我的朋友指出,来自相机的原始图像有很多称为Exif信息的元数据.由于无需为网站中的图像保留此Exif信息,我们可以将其删除.这将进一步减小3-10 kB的大小.
但我无法在我的Python代码中找到合适的库来执行此操作.我浏览了相关问题并尝试了一些方法:
原始图片:http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg
/usr/local/bin/mogrify -strip filename
Run Code Online (Sandbox Code Playgroud)
结果:http://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg 此方法将大小从105 kB缩小到99.6 kB,但也改变了颜色质量.
exiftool -all= filename
Run Code Online (Sandbox Code Playgroud)
结果:http://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg 此方法将大小从105 kB减小到72.7 kB,但也改变了颜色质量.
任何人都可以帮我删除所有额外的元数据,而无需更改图像的颜色,尺寸和其他属性?
python exif image-processing python-imaging-library exiftool
在我的图像处理软件周围,我使用exiftool成功地从Cr2,TIFF,JPG文件中删除exif信息.添加的标签,例如"关键字",在OSX(山狮)Finder,预览中都可见,并且被Spotlight很好地编入索引.
对于PNG,我需要回退到XMP,因为这是PNG的元数据容器.但是,预览和SpotLight似乎都没有选择使用exiftool的标签.相反,如果我首先在预览中添加标签并使用exiftool稍后添加新标签,则此IS已编入索引.我在这里看到的差异在XMP原始数据中,exiftool新创建了一个标题,而Preview没有.
例如,请查看PNG上维基百科页面中的以下PNG,无需元数据https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png:

使用exiftool添加关键字,然后转储XMP数据块:
exiftool -xmp-dc:subject=ViaExifSubject ./PNG_transparency_demonstration_1.png
exiftool -xmp -b ./PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)
提供以下XMP数据:
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 9.02'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about=''
xmlns:dc='http://purl.org/dc/elements/1.1/'>
<dc:subject>
<rdf:Bag>
<rdf:li>ViaExifSubject</rdf:li>
</rdf:Bag>
</dc:subject>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
Run Code Online (Sandbox Code Playgroud)
但是,在"预览"或"查找器"信息面板中,未找到"ViaExifSubject".
或者,使用OSX预览添加注释(在预览中打开,显示检查器,转到关键字选项卡,单击'+'添加关键字).XMP再次通过exiftool转储:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.1.2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:subject>
<rdf:Bag>
<rdf:li>viaPreview</rdf:li>
</rdf:Bag>
</dc:subject>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
Run Code Online (Sandbox Code Playgroud)
的xpacket报头中不存在预览生成的关键词,并且XMP工具包是不同的.现在可以看到"viaPreview"标签,例如mdls在CLI上使用.
将原始XMP信息推送到干净文件中也不会产生预期结果:
exiftool "-xmp<=viaexif.xmp" PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,如果我首先使用预览创建一个标签,那么执行上面的命令,反映新标签我怀疑我正在监督需要"激活"的外部数据解析器,拾取标签并将它们放在不同的位置商店(例如.DS_store).我还没有看到任何添加的xattr.
这些是我的问题:
我在我的磁盘上挖出了我的xmp_sdk并尝试了提供的示例:
ModifyXMP可以将"纯"XMP信息写入到OSG Finder中显示的PNG中 - …
我刚刚从 Google 外卖中获取了数千张照片,但我似乎无法按正确的时间顺序将它们导入到其他地方。我还找到了一些使用 exiftool 的教程,但我无法正确获取不同的时区?知道如何检索正确时区的时间吗?时区也不在 JSON 中。
Google Pixel 2以及其他手机可能具有覆盖“动态照片”的功能。这些被保存为MVIGM并且相对较大。
我正在寻找一种删除/提取视频的方法。
到目前为止,我发现了一个很有前途的exif标签
$ exiftool -xmp:all MVIMG_123.jpg
XMP Toolkit : Adobe XMP Core 5.1.0-jc003
Micro Video : 1
Micro Video Version : 1
Micro Video Offset : 4032524
Run Code Online (Sandbox Code Playgroud)
我以为视频可能以指定的偏移量出现,但这不起作用:
$ dd if=MVIMG_123.jpg of=video.mp4 bs=4032524 skip=1
$ file video.mp4
video.mp4: data
Run Code Online (Sandbox Code Playgroud)
是否有任何资源可以证明嵌入?甚至还有删除/提取视频的工具吗?
我希望使用exiftool扫描我的照片和视频中的EXIF标签.这是一个perl可执行文件.用这个来表达最好的方法是什么?有没有Python库可以做到这一点?或者我应该直接调用可执行文件并解析输出?(后者看起来很脏.)谢谢.
我问的原因是因为我目前正在使用pyexiv2,它不支持视频.Perl的exiftool对图像和视频有非常广泛的支持,我想使用它.
我很有兴趣用java api或类似的东西解析exiftool结果.
我一直在研究,但我没有找到任何例子.例如,我怎样才能在我的java项目中获得这些结果?
ExifTool版本号:8.22
文件名:ExifTool.jpg
目录:t/images文件
大小:24 kB文件修改日期/时间
等等......我正在寻找'如何'或类似的东西.
Phil Harvey 在https://exiftool.org/exiftool_pod.html#WRITING-EXAMPLES上提供了一些使用 Exiftool 编写照片元数据的优秀示例。
按照 Phil 的例子,我在更新 JPG 的现有元数据字段时没有问题。但是,我现在尝试将相同的逻辑应用于视频元数据(MOV 包装的 H.264),但没有任何成功。我有一个根据 iPhone 5 (iOS 7.1) 拍摄的视频是颠倒的 - 旋转值为 180 而不是 0。所以我正在执行“exiftool -Rotation=0 [文件名]”但是我得到的结果是:
0 图像文件已更新
1个图像文件不变
视频元数据有什么根本不同吗?这可能是权限问题吗?我的执行语句不正确吗?也许有更好的方法?
谢谢!
7 月 10 日更新:根据 Exiftool 网站再次在https://exiftool.org/TagNames/Composite.html,我发现无法编辑旋转字段:
标签名称:旋转
可写:N
派生自:QuickTime:MatrixStructure、QuickTime:HandlerType
不幸的是,当我尝试通过 Exiftool 更新 MatrixStructure(也显示为“Matrix Structure”)时,它也失败了,并显示此消息 - “警告:抱歉,MatrixStructure 不可写。”
So it's looking like it's not possible to edit the relevant metadata here. However, while both VLC and the video transcoder I'm using work with the iPhone file upside down, …