使用 identify 命令我得到了一些关于图像的信息,它看起来像这样
my_image.png PNG 154x78 154x78+0+0 8-bit DirectClass 946B 0.000u 0:00.000
图像大小为 154x78
但我不知道如何将这些值放入变量中
w=154 #But I want this 154 to be somehow parsed...
h=78
请注意,此解析脚本适用于所有类型的图像,而不仅仅是 .png 扩展名
另外,如果可能的话,我想知道这一行 154x78+0+0 中的 0+0 是什么
谢谢
最佳答案
这是一个很难编写正则表达式的情况,因为我们不知道文件名是否包含空格或是否有扩展名。使用 format
会更容易切换为 identify
:
identify -format '%w' filename.jpg
3360
identify -format '%h' filename.jpg
1080
在 bash 中,你会写:
W=`identify -format '%w' filename.jpg`
H=`identify -format '%h' filename.jpg`
+0+0
是图像的偏移量,+0+0
just 表示从 0
开始在 x
上轴,和 0
在 y
上轴。您可以阅读更多 in the imagemagick manual .
由 Mark Setchell 编辑
前面的答案非常好,我不想添加竞争性答案,只是澄清一下,或者小的改进,这对评论来说太大了......
由于 OP 正在使用 bash
,他可以一次性获取宽高,不需要多次打开图片,像这样:
read w h < <(identify -format "%w %h" filename.jpg)
连同其他任何东西,例如色彩空间和独特颜色的数量:
read w h c u < <(identify -format "%w %h %[colorspace] %k" filename.jpg)
关于regex - 从识别命令解析图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207965/