Это сложный случай для написания регулярного выражения, поскольку мы не знаем, будет ли имя файла содержать пробелы или иметь расширение или нет.Проще было бы использовать переключатель 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
означает только начало с 0
на оси x
и 0
на оси y
.Вы можете прочитать больше в руководстве по imagemagick .
Под редакцией Марка Сетчелла
Приведенный выше ответ совершенно хорош, и я не хотелдобавить конкурирующий ответ, просто пояснение или небольшое улучшение, которое слишком велико для комментария ...
Поскольку ОП использует bash
, он может получить ширину и высоту за один разбез многократного открытия изображения, например:
read w h < <(identify -format "%w %h" filename.jpg)
вместе со всем, что угодно, например с цветовым пространством и количеством уникальных цветов:
read w h c u < <(identify -format "%w %h %[colorspace] %k" filename.jpg)