小编Sta*_*eek的帖子

ExifTool - 如何从文件夹及其所有子文件夹内可能的所有文件中删除所有元数据?

如何从文件夹及其子文件夹内的所有文件中删除所有元数据?

我已经尝试了几个命令但没有成功。所有这些都与特定的文件扩展名相关联和/或没有遍历其中的所有子文件夹。

exif metadata exiftool

13
推荐指数
1
解决办法
2万
查看次数

使用 Exiftool 更新 mov 文件中的旋转值

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, …

ios exiftool

6
推荐指数
2
解决办法
3248
查看次数

如何将 shell 脚本输出传递给通知?

我想exiftool -k -P -overwrite_original_in_place -ImageDescription= "$1"/*.ARW在通知中显示 shell 脚本运行 ( ) 的结果。我试图$1在主题中用作文本,但它显示的是 $1 而不是脚本输出。

macos shell notifications automator

5
推荐指数
2
解决办法
2818
查看次数

在什么情况下 PHAsset 实例没有创建日期?

我目前正在编写我的第一个应用程序并处理PHAssets很多事情。PHAsset对于我想要实现的目标来说,其中一个属性特别重要,那就是creationDate。该值是可选的,因此有时它可以是nil

https://developer.apple.com/documentation/photos/phasset/1624776-creationdate

我根本不清楚为什么这个值会是nil,而且我很难在 iOS 的照片应用程序中重现这个值,看看它如何处理这种情况。我已经尝试清除某些图像文件中的所有元数据,并手动将它们复制到我的照片库中,但creationDate仍然没有nil:/有什么想法吗?我真的很想看看照片应用程序如何处理此类图像文件,因为我试图在我的应用程序中重现类似的用户体验。

作为参考,我使用以下方法清除元数据exiftool

exiftool -overwrite_original -all= /path/to/image.jpg
Run Code Online (Sandbox Code Playgroud)

ios photokit phasset

5
推荐指数
0
解决办法
471
查看次数

查找 EXIF 格式的数据

我的程序出现问题,用于从 .JPG 文件下载 DateTimeOrginal 数据。我在网上找到了有关它的文档:

https://ExifTool.org/TagNames/EXIF.html

我看到我要查找的数据位于 0x9003 地址。

所以现在我想做的是:

temp = fopen(name, "rb");
Run Code Online (Sandbox Code Playgroud)

打开文件二进制

fseek (temp, 0x9003, SEEK_SET);
Run Code Online (Sandbox Code Playgroud)

将文件指针移动到该地址

fscanf(temp, "%s", str);
Run Code Online (Sandbox Code Playgroud)

并将数据加载到 char[] 结构中。

至少其中任何一个是正确的吗?我仍然认为我的地址有问题,因为编译该程序后我只看到文件中的一些垃圾。

c++ exif

4
推荐指数
1
解决办法
7484
查看次数

Python rawkit 如何从 RAW 文件中读取元数据值?

我正在编写 python 脚本,我需要从原始照片文件(例如 .CR2)中获取 exif 信息。

我发现 Python Rawkit提供了这样做的能力。

with Raw(filename=image_path) as raw:
  print raw.metadata

Metadata(aperture=-1.2095638073643314e+38, timestamp=4273602232L,
         shutter=-1.1962713245823862e+38, flash=True, 
         focal_length=-1.2228562901462766e+38, height=3753, 
         iso=-1.182978841800441e+38,
         make='Canon', model='EOS 5D Mark II', 
         orientation=0, width=5634)
Run Code Online (Sandbox Code Playgroud)

但我有点困惑,如何读取这些值?。例如,我期待像100/200/400这样的iso值,但什么是-1.182978841800441e+38

我的问题不是针对iso的,也针对快门、光圈……

我检查了libraw和 rawkit doc,但无法找到如何读取/转换这种值。

文档中的这部分不是很详细:

float iso_speed;
ISO sensitivity.

float shutter;
Shutter speed.
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解如何阅读这些值吗?

谢谢

[更新]

正如neo所建议的,我将使用ExifRead。事实上,这是一个更好的选择,我正在编写一个 python 脚本。使用 ExifRead 不需要额外的 C 库依赖项。

我能够打开佳能原始文件并解析 Exif,但不幸的是遇到了错误的光圈值:

EXIF ApertureValue (Ratio): 3
# My photo was taken in 2.8 (maybe a rounded value on …
Run Code Online (Sandbox Code Playgroud)

python metadata photo libraw

4
推荐指数
1
解决办法
6456
查看次数

使用 System.Drawing.Imaging; System.Drawing 中不存在成像

我正在尝试使用此库从 .Net Core 应用程序中的照片中提取元数据:

https://www.codeproject.com/Articles/27242/ExifTagCollection-An-EXIF-metadata-extraction-libr

但是,在实现 ExifTagCollection 类时,我收到了标题中列出的错误。

在此处输入图片说明

我已经成功地引用了 System.Drawing,但它无法识别其绘图扩展名。任何帮助都会很棒。也愿意为其他图书馆提供建议以实现我的目标。谢谢

c# exif asp.net-core-mvc

2
推荐指数
1
解决办法
1万
查看次数

Perl,将字符串拆分为Key:使用小写键而不使用临时数组的哈希值

给定一串Key:Value对,我想创建一个查找散列但是键的小写值.我可以使用此代码完成此操作

my $a="KEY1|Value1|kEy2|Value2|KeY3|Value3";
my @a = split '\|', $a;
my %b = map { $a[$_] = (  !($_ % 2) ? lc($a[$_]) : $a[$_])  } 0 .. $#a ;
Run Code Online (Sandbox Code Playgroud)

生成的Hash看起来像这个Dumper输出:

$VAR1 = {
          'key3' => 'Value3',
          'key2' => 'Value2',
          'key1' => 'Value1'
        };
Run Code Online (Sandbox Code Playgroud)

是否可以直接创建哈希%b而不使用临时数组@a,或者是否有更有效的方法来实现相同的结果?

编辑: 我忘了提到我不能使用外部模块.它需要是基本的Perl.

perl hash

2
推荐指数
1
解决办法
278
查看次数