найдите самую низкую высоту и самую низкую ширину среди всех изображений в каталоге

Случилось со мной, что Skype не спустился в лоток до минимума, и я отметил параметр «start skype minimized» ...

Я узнал, что это было потому, что я запускал skype из оболочки скрипт с аргументом «--pipelogin», который, похоже, делает skype игнорировать настройку «start minimized»

Надеюсь, что это поможет кому-то

2
задан 21 November 2017 в 00:36

4 ответа

Получение изображения с минимальной высотой и шириной

У меня нет статистики сравнения, но у меня есть причины полагать, что приведенный ниже сценарий предлагает относительно хороший вариант, поскольку:

PILPIL PIL не загружает изображение в память при вызове .open. Сам скрипт не сохраняет список всех файлов, он просто смотрит на файл, если следующий имеет меньшую высоту или ширину.

Сценарий

#!/usr/bin/env python3 from PIL import Image import os import sys path = sys.argv[1] # set an initial value which no image will meet minw = 10000000 minh = 10000000 for image in os.listdir(path): # get the image height & width image_location = os.path.join(path, image) im = Image.open(image_location) data = im.size # if the width is lower than the last image, we have a new "winner" w = data[0] if w < minw: newminw = w, image_location minw = w # if the height is lower than the last image, we have a new "winner" h = data[1] if h < minh: newminh = h, image_location minh = h # finally, print the values and corresponding files print("minwidth", newminw) print("minheight", newminh)

Как использовать

Скопируйте сценарий в пустой файл, сохраните его как get_minsize.py Запустите его с каталогом изображений в качестве аргумента: python3 /path/to/get_maxsize.py /path/to/imagefolder

Вывод вроде:

minwidth (520, '/home/jacob/Desktop/caravan/IMG_20171007_104917.jpg') minheight (674, '/home/jacob/Desktop/caravan/butsen1.jpg')

NB

Сценарий предполагает, что папка с изображениями является «плоским» каталогом с (только) изображений. Если это не так, нужно добавить несколько строк, просто укажите.

2
ответ дан 18 July 2018 в 02:55

Это сработало для меня:

$ find -type f -name \*.jpg -exec identify -format '%w %h %d/%f\n' {} + | sort -n -k1 > sorted_width $ sort -k 1rn sorted_width $ find -type f -name \*.jpg -exec identify -format '%w %h %d/%f\n' {} + | sort -n -k2 > sorted_height $ sort -k 2rn sorted_height
-1
ответ дан 18 July 2018 в 02:55

Получение изображения с минимальной высотой и шириной

У меня нет статистики сравнения, но у меня есть причины полагать, что приведенный ниже сценарий предлагает относительно хороший вариант, поскольку:

PILPIL PIL не загружает изображение в память при вызове .open. Сам скрипт не сохраняет список всех файлов, он просто смотрит на файл, если следующий имеет меньшую высоту или ширину.

Сценарий

#!/usr/bin/env python3 from PIL import Image import os import sys path = sys.argv[1] # set an initial value which no image will meet minw = 10000000 minh = 10000000 for image in os.listdir(path): # get the image height & width image_location = os.path.join(path, image) im = Image.open(image_location) data = im.size # if the width is lower than the last image, we have a new "winner" w = data[0] if w < minw: newminw = w, image_location minw = w # if the height is lower than the last image, we have a new "winner" h = data[1] if h < minh: newminh = h, image_location minh = h # finally, print the values and corresponding files print("minwidth", newminw) print("minheight", newminh)

Как использовать

Скопируйте сценарий в пустой файл, сохраните его как get_minsize.py Запустите его с каталогом изображений в качестве аргумента: python3 /path/to/get_maxsize.py /path/to/imagefolder

Вывод вроде:

minwidth (520, '/home/jacob/Desktop/caravan/IMG_20171007_104917.jpg') minheight (674, '/home/jacob/Desktop/caravan/butsen1.jpg')

NB

Сценарий предполагает, что папка с изображениями является «плоским» каталогом с (только) изображений. Если это не так, нужно добавить несколько строк, просто укажите.

2
ответ дан 24 July 2018 в 17:41

Это сработало для меня:

$ find -type f -name \*.jpg -exec identify -format '%w %h %d/%f\n' {} + | sort -n -k1 > sorted_width $ sort -k 1rn sorted_width $ find -type f -name \*.jpg -exec identify -format '%w %h %d/%f\n' {} + | sort -n -k2 > sorted_height $ sort -k 2rn sorted_height
-1
ответ дан 24 July 2018 в 17:41
  • 1
    Вместо того, чтобы просто указывать команды, возможно, вы можете объяснить, как каждый на самом деле делает то, что пользователь хочет сделать? – Thomas Ward♦ 21 November 2017 в 03:31

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

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