Знайдіть зображення в каталозі Linux на основі їх роздільної здатності [закрито]


0

Я хотів би просканувати всі зображення в каталозі linux (рекурсивно в межах підпапок) і знайти ті з роздільною здатністю, що перевищує певний поріг (наприклад, такі, які мають роздільну здатність принаймні 800x600або, якщо це простіше, скажімо, з шириною вище 1000пікселів). Тоді я хотів би записати їх адресу у .txtфайл, супроводжуючи їх дозвіл (або [width], [height]для кращого форматування).

Як я можу це зробити в сценарії bash? Мені доводиться сканувати мільйони зображень.



1
також запитували про askubuntu: askubuntu.com/q/1048914/10127
glenn jackman

2
Зрештою, не слід перетинати подібний перехід. Оскільки вам вдалося отримати відповідь там, я голосую, щоб закрити та видалити це. Я не сумніваюся, що у вас є вагомі причини для того, щоб потребувати цієї інформації, але подібне кроспостинг насправді не добре. Це витрачає зусилля і виявляє трохи неповаги до людей, які хочуть сумлінно допомогти вам.
JakeGould

4
Про це було перекладено на Ask Ubuntu .
JakeGould

Відповіді:


2

Нижче Баш скрипт, який використовує ImageMagick «s identifyутиліта буде рекурсивно шукати вказаний каталог для всіх файлів , які закінчуються .jpg, .jpeg, .pngа .gifпотім переглядає ті зображення , які повідомляють про те , понад 800 х 600.

#!/bin/bash

if [ -z $1]; then
  echo -e $0 '[path to search]\nRecursively search the specified directory for images over 800x600'

else

  find $1 \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1>800 || $2>600'

fi

Я пішов і відредагував це, оскільки це дуже хороша відповідь, але ImageMagick не встановлений за замовчуванням у системах. Тож робимо це зрозумілішим.
JakeGould
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.