with identify命令我得到一些关于图像的信息,看起来像这样
my_image.png PNG 154x78 154x78 + 0 + 0 8位DirectClass 946B 0.000u 0:00.000
图像尺寸为154x78
但我不知道如何将这些值放在变量
中w=154 #But I want this 154 to be somehow parsed...
h=78
请注意,此解析脚本应适用于所有类型的图像,而不仅仅是.png扩展名
如果可能的话我想知道这行中的0 + 0是什么+ 154 + 0 + 0
谢谢
答案 0 :(得分:6)
这是编写正则表达式的一个困难案例,因为我们不知道文件名是否包含空格或是否有扩展名。更容易使用format
的{{1}}开关:
identify
在bash中,你会写:
identify -format '%w' filename.jpg
3360
identify -format '%h' filename.jpg
1080
W=`identify -format '%w' filename.jpg`
H=`identify -format '%h' filename.jpg`
是图片的偏移量,+0+0
只是意味着从+0+0
轴上的0
开始,{{1在x
轴上。您可以阅读更多in the imagemagick manual。
由Mark Setchell编辑
前面的答案非常好,我不想添加一个相互竞争的答案,只是一个澄清,或者是一个小的改进,这对于评论来说太大了......
由于OP正在使用0
,他可以一次性获得宽度和高度,而无需多次打开图像,如下所示:
y
以及其他任何内容,例如颜色空间和唯一颜色的数量:
bash
答案 1 :(得分:0)
使用带有多个分隔符(空格和x)的awk应该可以正常工作
如果反引号不起作用,你可以试试w = $(.....)。
w = `awk -F" |x" '{print $3}'`
h = `awk -F" |x" '{print $4}'`
您需要将识别命令的输出放入上述内容,方法是将其预先存储在文件中并将其传入或包含该调用。