![以 Tex 或 LaTex 显示图像元数据](https://linux22.com/image/341239/%E4%BB%A5%20Tex%20%E6%88%96%20LaTex%20%E6%98%BE%E7%A4%BA%E5%9B%BE%E5%83%8F%E5%85%83%E6%95%B0%E6%8D%AE.png)
你好,我一直在努力寻找一种 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 拍摄了这张照片