Как найти все изображения с определенным размером пикселей с помощью командной строки?

Привет. Я просто решил это. Packard Bell TK85. Моя загрузочная последовательность была USB, CD, HD. Я изменил его на USB, HD, CD и работал.

1
задан 9 January 2013 в 21:20

2 ответа

Я думаю, что принятый ответ очень хорош, но я хотел добавить еще одно возможное решение ...

Хотя я чаще всего использую инструменты ImageMagick, netpbm является старым другом для обработки изображений. Вы можете увидеть размер любого формата изображения с помощью команды:

anytopnm file | pamfile

. Это будет генерировать вывод, который выглядит так:

stdin:  PPM raw, 1650 by 1275  maxval 255

Чтобы ответить на вопрос «что следует после трубы? », я использую while read чаще, чем я использую xargs, потому что он более гибкий. Мой ответ netpbm на вопрос выглядит так:

find -iname \*.jpg | while read img; do \
  anytopnm "$img" | pamfile | \
    perl -ane 'exit 1 if $F[3]<300 || $F[5]<300' || rm -v "$img"; \
done
1
ответ дан 25 May 2018 в 02:37

Команда identify из пакета imagemagick делает то, что вы хотите:

$ identify abc.jpg
abc.jpg JPEG 1952x3264 1952x3264+0+0 8-bit DirectClass 1.111MB 0.000u 0:00.000

Опять же, вам нужно будет использовать grep для сортировки размера изображения. [!d1 ]

Однако я подозреваю, что, если у вас не очень широкий диапазон размеров изображений, было бы проще просто использовать find для удаления файлов JPEG ниже заданного размера:

find -iname '*.jpg' -size -10k -delete

( Стоит бежать без -delete сначала, чтобы проверить, не находит вещи, которые вы хотите сохранить - в противном случае он не будет запрашивать вас перед удалением).

0
ответ дан 25 May 2018 в 02:37

Другие вопросы по тегам:

Похожие вопросы: