问题标签 [exiftool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1686 浏览

macos - 从文件名导入 EXIF

好的,所以有大量的示例和应用程序使用ExifTool将 EXIF 数据转换为 .jpg 名称。但是如果你想反过来呢?我有许多使用 ODBC 日期但不包含元 EXIF 日期的文件。我如何 - 使用什么应用程序或 EXIFTool 命令行 - 从文件名更新 EXIF_DATE?

2012-02-24_1330073217.jpg

我通过 filenamepattern 找到了一个 Windows 应用程序 EXIFDate 来执行此操作,但我是 mac 用户。:/

0 投票
3 回答
1934 浏览

bash - Grep- 搜索 exiftool 输出以查找不同的匹配项

我有一个大文件夹树,并想制作一个脚本来打开 gThumb 或基于关键字搜索的其他图像查看器。 exiftool已经安装在我的系统上。和命令

以格式打印数据

目前,

将元数据的关键字行打印为

$1关键字搜索值在哪里。现在,我的解决方案是使用两个循环,每个循环exiftool对不同的 grep 值执行调用。如何执行单个exiftool调用以匹配关键字,将关联的文件名传递给列表。

编辑-澄清:

如果关键字字段存在匹配项,我想打印出 FileName 行。但是,在文本输出中,关键字存在于 FileName 下方约 20 行。

0 投票
1 回答
828 浏览

eval - 解析错误:语法错误,eval 行中出现意外的“图像”(T_STRING)

我正在尝试创建一个页面来读取图像的元数据并允许用户对其进行编辑并将其保存到同一图像中。

在搜索互联网后,我发现 exiftool 作为解决方案,但我只能将其作为命令行而不是页面中的库。

我有这个代码: eval('$metadata=' . exiftool.exe -php -q $imagePath); foreach ($metadata[0] as $key => $value) { if ($metadata[0][$key]!=$_POST[$key]){ if ($_POST[$key]=="") $_POST[$key]=" "; //if metadata is not set, than create an empty metadata eval('$metadata=' . exiftool.exe "-$key=$_POST[$key]" $imagePath); } }

我收到了这个错误:

解析错误:语法错误,E:\xampp\htdocs\imgdata\index.php(30) 中的意外“图像”(T_STRING):第 1 行的 eval() 代码

我试图用其他类似“和”替换`,但没有运气。我想念什么?关于如何做的更好的主意吗?

谢谢

0 投票
1 回答
977 浏览

identify - 获取图像颜色模式的最快方法

我想获取图像文件(jpg、tif)的颜色模式(位图、灰色、rgb、cmyk)。Imagemagick 将其称为“色彩空间”,而 exiftool 称为“色彩模式”,而 Photoshop 则称为“图像模式”。

一种可能性是识别,它几乎总是给出想要的结果,但它非常缓慢。识别也有一个问题,它将单色图像(位图)识别为灰色。

exiftool 更快(并将单色检测为正确的“位图”),但并不总是提供颜色空间:

是否可以使用 exiftool 或其他快速方法始终获得颜色模式?

0 投票
1 回答
2372 浏览

perl - Detecting exif with Image::ExifTool

I'm using Image::ExifTool for my exif-needs.

But now, need ONLY to detect if an image has EXIF data or not, and Image::ExifTool returns some data all times (e.g. returns metadata from file stat too, and internal image detecting). So,

prints many "Found" tags, but the file doesn't contain any exif information.

Is here some easy way how to detect than the image really has or not EMBEDEDD exif data with Image::ExifTool?

If someone need additional informations: Having and image img.jpg with exif data, so:

print many tags. Now

prints

and

prints nothing. So the img2.jpg hasn't exif data. But the above perl script still prints many "Found" tags.

0 投票
1 回答
227 浏览

java - 如何使用 exiftool 在文件上设置 Windows 特定的元数据

我正在使用我的 java 应用程序中的 exiftool 来修改不同文件的元数据。主要是 DOC、PDF 和 JPEG。

我想将此图像中显示的“评论”窗口元数据属性设置为我从数据库中获取的一些信息。

问题

有没有办法可以从我的 java 应用程序或命令行中使用 ExifTool,以便我可以更改文件上的“注释”元数据属性?

0 投票
1 回答
580 浏览

ios - iOS、EXIF 和相机型号名称

我有一个 iOS 应用程序,用户可以在其中上传使用 UIImagePickerController 拍摄的照片。

当我查看 jpg exif 数据时,我注意到大量照片的“相机型号名称”中填写了“iPod Touch”。

为什么我可以收集使用 iPod Touch 拍摄的照片,即使它需要授予对应用程序的 Geolocation 访问权限?

即使在 iPod Touch 设备上,我也能获得 GPS 坐标?

注意:用户必须启用 GeoLocation。

0 投票
2 回答
4026 浏览

macos - Exiftool 在 PNG 图像中创建 OSX 可见 XMP 元数据

在我的图像处理软件周围,我使用 exiftool 成功地洗牌来自 Cr2、TIFF、JPG 文件的 exif 信息。添加的标签,例如“关键字”,在 OSX(山狮)Finder、预览中都可见,并被 Spotlight 很好地索引。

对于 PNG,我需要回退到 XMP,因为这是 PNG 的元数据容器。但是,Preview 和 SpotLight 似乎都没有选择 exiftool 添加的标签。相反,如果我先在预览中添加一个标签,然后使用 exiftool 添加一个新标签,这就是索引。我在 XMP 原始数据中看到的不同之处在于 exiftool 新创建了一个标头,而 Preview 没有。

例如,在没有元数据的 PNG 的维基百科页面上查看以下 PNG https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png

没有元数据的示例 PNG

使用 exiftool 添加关键字,然后转储 XMP 数据块:

给出以下 XMP 数据:

但是,在预览或 Finder 信息面板中,找不到“ViaExifSubject”。

或者,使用 OSX 预览添加评论(在预览中打开,显示检查器,转到关键字选项卡,单击“+”添加关键字)。XMP 通过 exiftool 再次转储:

预览生成的xpacket关键字中不存在标题,并且 XMP 工具包不同。“viaPreview”标签现在可见,例如mdls在 CLI 上使用。

将原始 XMP 信息推送到一个干净的文件中也不会产生预期的结果:

令人惊讶的是,如果我首先使用预览创建一个标签,然后执行上面的命令,新标签就会反映我怀疑我正在监督一个需要“激活”的外部数据解析器,拿起标签并将它们放在不同的存储(例如 .DS_store)。我没有看到任何 xattr 被添加。

这些是我的问题:

  • exiftool 是 XMP/PNG 组合的正确工具吗,我是否缺少特定功能
  • OSX 是否违反了 XMP 标准?编辑:显然 XMP在默认情况下不受 OSX 的尊重
  • 我应该使用替代工具来剥离容器吗?

我在磁盘上挖掘了我的 xmp_sdk 并尝试了提供的示例:

ModifyXMP 可以将“纯”XMP 信息写入 OSX Finder 中显示的 PNG——这是一个很好的目标。

ReadingXMP 可以将 ExifTool 插入的 XMP 信息读取到 PNG 中,尽管此信息不会显示在 OSX Finder 中。

查看 ModifyXMP 的输出和 exiftool 插入完全相同的 XMP blob 时,文件大小相似。差异显示 exiftool 附加在 XMP sdk 将其放入 PNG 标头的文件末尾。XMP 规范声明“鼓励编码器将块放置在文件的开头,但这不是必需的。”

结论:exiftool 编写 XMP 的方式存在(轻微)差异,这特别会干扰 OSX 的元数据检索。

目前:

  • 尝试使用 XMP SDK 在开头插入一个干净的 XMP 数据包,并让 exiftool 重用这个第一个块。
  • 在 exiftools 的论坛上转发,作者 Phil Harvey 回复:

    我玩了一些Apple Preview,它不仅无法识别文件末尾的XMP,而且在向图像添加关键字时会删除此XMP。我的猜测是,如果 XMP 出现在 IDAT 块之后,Apple 软件会忽略它。如果 XMP 规范要求 XMP 块位于 IDAT 之前,那就太好了,但事实并非如此,因此这必须被视为 Apple 软件中的错误。我已将此添加到已知问题列表中

    最后,Phil Harvey 决定在 Exiftool 本身中解决这个问题:

    我在这方面做了很多工作,Exiftool 9.40将有一个新选项允许您在 PNG IDAT 块之前编写 XMP。相应的命令将如下所示: exiftool -api PNGEarlyXMP...

  • 在 Apple 提交了一个错误——2014 年 12 月更新:Apple 关闭了我的错误,声明他们不会对此主题采取任何行动

0 投票
4 回答
26101 浏览

python - Python:从图像中删除 Exif 信息

为了减少要在网站中使用的图像的大小,我将质量降低到 80-85%。这在一定程度上减小了图像大小。

为了在不影响质量的情况下进一步减小尺寸,我的朋友指出,来自相机的原始图像有很多称为 Exif 信息的元数据。由于不需要为网站中的图像保留此 Exif 信息,我们可以将其删除。这将进一步减小 3-10 kB 的大小。

但我无法在我的 Python 代码中找到合适的库来执行此操作。我浏览了相关问题并尝试了一些方法:

原图: http: //mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg

  1. 莫格里化

    结果:http ://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg 此方法将大小从 105 kB 减小到 99.6 kB,但也改变了颜色质量。

  2. Exif 工具

    结果:http ://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg 此方法将大小从 105 kB 减小到 72.7 kB,但也改变了颜色质量。

  3. 这个答案详细解释了如何操作 Exif 信息,但是如何使用它来删除信息?

谁能帮我删除所有额外的元数据而不改变图像的颜色、尺寸和其他属性?

0 投票
3 回答
1324 浏览

python - 在python中读取长exif标签

我正在尝试阅读像这样的显微镜图像的 EXIF 信息: https ://dl.dropboxusercontent.com/u/3816350/E3-9.tif

我对“图像描述”标签最感兴趣,因为它包含有关图像比例的信息。我已经使用 exifread 包成功加载了 EXIF 信息:

但是,图像描述在输出中被截断,我无法弄清楚如何显示整个“图像图像描述”字段。知道我该怎么做吗?

顺便说一句,我尝试使用 PIL 使用以下代码读取 EXIF 信息(如此所述):

但我收到以下错误:

我也在命令行上尝试过 exiftool,但它也略微切断了图像描述字段。

任何提示将不胜感激。