以 Tex 或 LaTex 显示图像元数据

以 Tex 或 LaTex 显示图像元数据

你好,我一直在努力寻找一种 Floss 解决方案,将关键字或图像描述显示为其下方的标题。

我的具体用例是,我有一个包含数百张图片的文件夹,我平均每次使用其中 40 张用于打印的图片。我不想手动输入每张图片的描述或关键字,因为这已经是图片元数据的一部分了。有没有办法用 Tex 或 LaTex 显示图片元数据?

答案1

不是直接的,但是有很多工具可以提取 exif(或其他元数据)。

例如 imagemagicidentify

因此(使用 bash 作为示例命令行)

for i in *.jpg ; do identify -format '%[EXIF:*]' $i | sed -e 's/exif\([^=]*\)=\(.*\)/\\def\\exif\1{\2}/' > ${i/jpg/exif}; done

将在当前目录下为每个 foo.jpg 留下一个 tex 格式的 foo.exif 文件。

我在这里随意拍了一张照片

$ head -20 P1100279.exif 
\def\exif:Artist{}
\def\exif:ColorSpace{1}
\def\exif:ComponentsConfiguration{1, 2, 3, 0}
\def\exif:CompressedBitsPerPixel{4/1}
\def\exif:Contrast{0}
\def\exif:CustomRendered{0}
\def\exif:DateTime{2014:08:02 11:37:21}
\def\exif:DateTimeDigitized{2014:08:02 11:37:21}
\def\exif:DateTimeOriginal{2014:08:02 11:37:21}
\def\exif:DigitalZoomRatio{0/10}
\def\exif:ExifImageLength{3672}
\def\exif:ExifImageWidth{4896}
\def\exif:ExifOffset{728}
\def\exif:ExifVersion{48, 50, 51, 48}
\def\exif:ExposureBiasValue{0/100}
\def\exif:ExposureMode{0}
\def\exif:ExposureProgram{2}
\def\exif:ExposureTime{10/600}
\def\exif:FileSource{3}
\def\exif:Flash{16}

那么你可以使用

\begin{figure}
\includegraphics{P1100279}
\catcode`\:=11 % make : a letter
\input{P1100279}

I took this picture on \exif:DateTimeOriginal
\end{figure}

这将打印

我于 2014:08:02 11:37:21 拍摄了这张照片

相关内容