好友
阅读权限 25
听众
最后登录 1970-1-1
本帖最后由 不谙世事的雨滴 于 2023-3-16 21:36 编辑
前一阵子收到大佬 @onlyclxy 的委托,让我寻找一个通过调用程序或者代码的方法,实现往jpg图片的exif标签里写入文本内容的效果。
从2月27日开始的这两个多星期内,经过和大佬的密切沟通合作,填了好几个“大坑”之后,代码总算被我搞出来了。
虽然在最后,由于我的程序和代码能起作用的前提是要在已有的jpg图片文件上修改,也就是先要有现成的jpg文件,而大佬期望的是连同插入的exif信息,一次性从无到有地创建一个带有指定exif信息的jpg文件,大佬没有全部采用我的代码,但是我的这部分代码对他的帮助很大,原本他一直不知道如何准确地添加指定的exif信息到指定的标签,经过我的代码的“启发”,大佬最终成功实现了想要的效果,我也写出了一个在我看来比较有用的工具,可以说是“皆大欢喜”的结局。
下面来介绍一下这个命令行程序:
1.程序支持对jpg文件的“标题”“标记”“作者”“备注”“主题”这五个windows图片文件属性中展示的exif标签进行写入,
采用的是覆盖的方式对单个exif标签进行写入,被写入的exif标签之前的内容会被清除(如果exif能正确识别的话),
其他标签的值则会被保留。
2.如果之前用windows自带的图片属性编辑工具,插入或修改过本程序帮助里提到的exif标签(尤其
是“标题”、“作者”、“标记” ),且标签里有文本内容的话,由于用windows自带工具写入的标签属性的exif格式
和本程序接受的格式有差异(表现在图片文件的二进制里,对比用本程序插入属性的图片,经过windows插入属性的图片
在图片文件头部会多出一大段空白和形似“<xxx>.....</xxx>”的类xml标签),所以用本程序有很大可能是直接覆盖不了
这些标签的内容的(表现在windows的图片文件属性里,此标签的值没有发生变化)。
【 我这边用一个jpg文件测试了一下,对原来有文本内容的标签, 用此程序操作后,“标题”、“作者”标签的文本内容不变,“标记”被追加了一个值,“备注”和“主题”则能够成功覆盖 】
所以建议对属性空白的图片使用该程序 ,比如刚刚生成或刚刚拍摄的图片,或者在写入标签前 ,用windows自带的工具或者其他工具
(如“ExifCleaner”,下面有下载链接 ,但是使用“ExifCleaner”会把所有的exif标签全删除掉),手动清除之前用windows自带工具插入的 这些标签的值 。
【我这边用一个jpg文件测试了一下,用windows自带工具清除了windows工具自身之前写入的标签属性后,是能够用此程序写入标签值的 】
3.是“2.”的补充说明:之前经过本程序操作的图片,只要不用windows自带的图片属性编辑工具进行编辑,
再次运行此程序后,是能够覆盖之前标签里的内容的。
4.程序支持从其他路径调用,以下面展示的cmd窗口示例为例:
=========================================================================================
Microsoft Windows [版本 10.0.19044.1706]
(c) Microsoft Corporation。保留所有权利。
E:\【存放图片的文件夹】> "D:\win_exif_tag_writer\bin\win_exif_tag_writer.exe" -write "123456_test" -to "1.jpg" -tag "标记"
=========================================================================================
图片文件路径支持相对路径,如上面的例子所示。
所以完全可以将本程序的路径添加进系统环境变量“path”中 。
这样就能直接在cmd窗口中输入:"win_exif_tag_writer.exe" -write "123456_test" -to "1.jpg" -tag "标记"
软件下载链接:
https://wwkq.lanzoum.com/b01kl6lej
密码:3uhm
本程序github开源地址:
https://github.com/ssh-buanshishi/windows_exif-tag_writer
附赠的 图片exif信息清除 工具ExifCleaner 下载链接:
https://wwkq.lanzoum.com/b01kl706b
密码:e72u
更多使用帮助请参见文件中的“帮助.txt”
免费评分
查看全部评分
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。