如何访问 exiv2 Image Size 属性?
How to acces exiv2 ImageSize Property?
我从 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.ImageWidth
和 Exif.Image.ImageLength
?
standard Exif tags 不列出 ImageSize
。
正如 ghoti 所建议的,解析输出有效:
exiv2 image.jpg | grep "Image size" | sed -n "s/^.*Image size\s*:\s\([0-9]*\)\sx\s\([0-9]*\).*$//p"
给出宽度,
exiv2 lowerCircle_0100.jpg | grep "Image size" | sed -n "s/^.*Image size\s*:\s\([0-9]*\)\sx\s\([0-9]*\).*$//p"
身高。
虽然我仍然希望得到一个更清晰的答案。
sed命令的解释:
sed -n "s/^.*Image size\s*:\s\([0-9].*\)\sx\s\([0-9]*\).*$//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
\sx\s space x space
([0-9]*\) another group of digits. store that in
.*$ everything until the end of line
/ substitute all that with the first group
/p" and print the substituted result
或没有 sed 象形文字
exiv2 pr X.jpg | awk -F: '/Image size/ {print }' | cut -dx -f1 | tr -d ' '
和
exiv2 pr X.jpg | awk -F: '/Image size/ {print }' | cut -dx -f2 | tr -d ' '
我从 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.ImageWidth
和 Exif.Image.ImageLength
?
standard Exif tags 不列出 ImageSize
。
正如 ghoti 所建议的,解析输出有效:
exiv2 image.jpg | grep "Image size" | sed -n "s/^.*Image size\s*:\s\([0-9]*\)\sx\s\([0-9]*\).*$//p"
给出宽度,
exiv2 lowerCircle_0100.jpg | grep "Image size" | sed -n "s/^.*Image size\s*:\s\([0-9]*\)\sx\s\([0-9]*\).*$//p"
身高。
虽然我仍然希望得到一个更清晰的答案。
sed命令的解释:
sed -n "s/^.*Image size\s*:\s\([0-9].*\)\sx\s\([0-9]*\).*$//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
\sx\s space x space
([0-9]*\) another group of digits. store that in
.*$ everything until the end of line
/ substitute all that with the first group
/p" and print the substituted result
或没有 sed 象形文字
exiv2 pr X.jpg | awk -F: '/Image size/ {print }' | cut -dx -f1 | tr -d ' '
和
exiv2 pr X.jpg | awk -F: '/Image size/ {print }' | cut -dx -f2 | tr -d ' '