Как отсортировать изображения в папки по разрешению?
7447
flammable
Фон: у меня есть папка, полная сохраненных изображений на рабочем столе. Я хотел бы поместить их в папки, исходя из их разрешения - 1024x768 и т. Д. Создание папок на лету является бонусом. В настоящее время все изображения находятся в папке, но некоторые из них находятся в подпапках. Я могу объединить их вручную, если это облегчит задачу.
Я бы предпочел терминал, хотя я все еще новичок в Bash. Я совсем не программист, правда.
Я использую Mac OS X, но я не против установки дополнительных приложений для этого (MacPorts?) Или даже использования другой ОС (у меня есть Windows XP, Windows Vista и Ubuntu 9 прямо сейчас в VMWare) ).
Я знаю, что это тема более года (извините за это), но я думаю, что кому-то может понадобиться полный рабочий сценарий, так что вот оно. Взяв идеи здесь и составив сценарий, мы получим.
#!/bin/bash for image in *.jpg; do res=$(identify -format %wx%h\\n $image); mkdir -p $res; mv $image $res; done
4
flammable
Серьезно, спасибо за ответ, всем! Я вернулся к этому, более опытному, и большинство комментариев здесь имеют больше смысла.
Я слегка подправил скрипт @ zatatlan, чтобы вместить пробелы в именах файлов и добавить больше расширений файлов.
#!/bin/bash for image in *.jpg *.JPG *.jpeg *.JPEG *.gif *.GIF *.bmp *.BMP *.png *.PNG; do res=$(identify -format %wx%h\\n "$image"); mkdir -p $res; mv "$image" $res; done
3
user4126
Возможно использовать imagemagick для определения разрешения изображения . Заверните его в петлю bash и все. Я не буду ждать, пока не доберусь домой до раковины, так что вот что-то с моей головы. Синтаксис, вероятно, неправильный, но он может дать вам некоторые подсказки.
for image in $(`*.jpg`) do res=`identify $image | grep -o 'Resolution:'` if [ ! -d $res ]; then mkdir $res fi mv $image $res done
Скрипт создает каталоги на лету. Для Mac доступны как bash, так и imagemagick.
Вы можете сделать скрипт немного короче и проще, заменив блок if на простой mkdir -p $ res.
Ryan Thompson 15 лет назад
0
AmoK Exif Sorter может переименовывать изображения, а также перемещать или копировать их в произвольные папки. Папки могут быть названы в соответствии с данными exif.
Предлагает предварительный просмотр имен файлов, встроенный просмотр изображений и exif-данных, перетаскивание, просмотр миниатюр, автоматическую проверку обновлений и профилей для разных камер и пользователей.
Также поддерживает видео файлы по дате создания, файлы в формате IPTC.
Написан на JAVA, работает на всех платформах, поддерживающих JRE5. Оформить список функций по ссылке.
Не расстраивайтесь из-за немецкого языка. Потяните вниз Spracheи выберите Englisch, перезапустите приложение.
1
mas
Команда идентификации ImageMagick может дать вам ширину и высоту в пикселях, например
Вы можете поместить это в скрипт bash как часть цикла for и, для безопасности, скопировать файлы в каталог, имя которого совпадает с разрешением (проверьте, существует ли он, и создайте, если нет).
0
DHayes
Основным способом, который дает приблизительный порядок разрешения, является организация по размеру файла. Это то, что должно быть встроено в любую ОС, поэтому вам не нужно ничего особенного. Большая загвоздка в том, что формат ваших фотографий должен быть одинаковым, чтобы это работало. Это не идеальное решение, но это может быть простой пробел, пока вы не найдете то, что действительно отвечает всем требованиям.