如何访问 exiv2 图像大小属性?



我从blender创建图像,它们缺少Exif元数据,我使用bash命令添加exiv2。(因为这些图像传递到的软件将使用元数据。

例如,我可以使用exiv2 -M"set Exif.Image.ImageWidth 960" image.jpg将图像宽度设置为 960,然后使用exiv2 -g Exif.Image.ImageWidth -Pv image.jpg将其读出。

为了快速总结,我可以exiv2 image.jpg获取设置的 Exif 元数据列表。这包括

$ exiv2 image.jpg
File name       : image.jpg
File size       : 32975 Bytes
MIME type       : image/jpeg
Image size      : 960 x 540

如何使用此Image size在 bash 中设置Exif.Image.ImageWidthExif.Image.ImageLength

标准 Exif 标签未列出ImageSize.

正如 ghoti 所建议的那样,解析输出有效:

exiv2 image.jpg  | grep  "Image size" | sed -n "s/^.*Image sizes*:s([0-9]*)sxs([0-9]*).*$/1/p"

给出宽度,并且

exiv2 lowerCircle_0100.jpg  | grep  "Image size" | sed -n "s/^.*Image sizes*:s([0-9]*)sxs([0-9]*).*$/2/p"

高度。

不过,我仍然希望得到一个更干净的答案。

sed 命令的说明:

sed -n "s/^.*Image sizes*:s([0-9].*)sxs([0-9]*).*$/1/p"
-n            suppress printing
"s/           substitute match
^.*           everything from the start
Image size    until "Image size" is encountered
s*:s        whitespace, colon, a single space
([0-9]*)    any number of digits. store that in 1
sxs         space x space
([0-9]*)    another group of digits. store that in 2
.*$           everything until the end of line
/1           substitute all that with the first group
/p"           and print the substituted result

或没有 sed 象形文字

exiv2 pr  X.jpg | awk -F: '/Image size/ {print $2}' | cut -dx -f1 | tr -d ' '

exiv2 pr  X.jpg | awk -F: '/Image size/ {print $2}' | cut -dx -f2 | tr -d ' '

相关内容

  • 没有找到相关文章

最新更新