Магия изображения не обрабатывает все изображения - PullRequest
0 голосов
/ 06 ноября 2018

В настоящее время я пытаюсь преобразовать пакет изображений в оттенки серого, используя:

convert "* .jpg" -установить цветовое пространство Grey -separate -average "* .jpg"

Сейчас я работаю над парой сотен изображений. Когда я запускаю команду, я получаю копии всех изображений, но только 1-е фактически преобразуется в оттенки серого. Кто-нибудь знает, какова может быть проблема? Кроме того, если у кого-то есть лучший способ работы с очень большим количеством изображений (в конечном счете мне нужно будет конвертировать несколько тысяч) за один раз, я буду признателен за это.

Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2018

Как указано в комментариях, вы не можете использовать подстановочные знаки в качестве вывода. Если вы хотите перезаписать исходные файлы обновленным цветовым пространством, вы можете попробовать утилиту mogrify.

mogrify -set colorspace Gray -separate -average *.jpg

Но это может быть рискованно как ваши разрушающие оригиналы. Простой цикл for может легко планироваться и управляться.

for filename in $(ls *.jpg)
do
    convert "$filename" -set colorspace Gray -separate -average "output_${filename}"
done

в конечном итоге мне нужно будет конвертировать несколько тысяч

Если вы действительно сталкиваетесь с большим количеством задач, я бы предложил распределить задачи по нескольким ядрам ЦП. Возможно с GNU Parallel.

parallel convert {} -set colorspace Gray -separate -average output_{.} ::: *.jpg

Конечно, я предполагаю, что вы работаете с BASH в * nix системе. YMMV в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...