Команда конвертирования imagemagi c не работает в моей системе - PullRequest
0 голосов
/ 01 апреля 2020

Я пытался пакетным способом снизить качество некоторых изображений в моей системе, хранящихся в расположении

~/sandboxArea/MainCam

, и я выполнил следующую команду

for i in $(ls ~/sandboxArea/MainCam); do convert $i -quality 30 ~/sandboxArea/converted/$i; done

и выше Команда сработала, и все файлы были сначала уменьшены в размере, а затем помещены в папку «~ sandboxArea / convert»

Затем я снова попытался снизить качество изображений, хранящихся в папке

~/sandboxArea/SecondCam

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

for k in $(ls ~/sandboxArea/SecondCam); do convert $k -quality 30 ~/sandboxArea/convertedB/$k; done

, и она выдала мне следующие ошибки:

convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5682.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5683.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5683.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5684.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5684.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5685.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5685.JPG' @ error/convert.c/ConvertImageCommand/3258.

Я пробовал несколько способов исправить эту проблему, а также проверил официальный сайт imagemagi c .org, но об этой проблеме ничего не сказано.

Это ошибка? Поскольку эта команда работала один раз, но не работала снова.

Кроме того, я удалил файлы, которые ранее были сохранены в папке «преобразованы», чтобы проверить, будет ли команда работать снова. И там тоже не получилось. Так что одна и та же команда когда-то работала, а в другой - нет.

Может кто-нибудь помочь, пожалуйста. У меня около 8000+ изображений, каждый размером около 7-9 МБ, и все эти изображения занимают много места. Просто хотел сэкономить место на моем HDD

Заранее спасибо. Если кому-то нужно больше разъяснений, пожалуйста, дайте мне знать. Спасибо

1 Ответ

1 голос
/ 01 апреля 2020

Вот более простой способ воспроизвести вашу проблему:

$ ls ~/tmp
foo.jpg

$ convert foo.jpg bar.jpg
convert-im6.q16: unable to open image `foo.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
convert-im6.q16: no images defined `bar.jpg' @ error/convert.c/ConvertImageCommand/3258.

Проблема в том, что, хотя у вас есть файл foo.jpg в системе, он находится в другом каталоге, поэтому вы можете ' т доступ к нему без уточнения имени. В этом случае вы можете вместо этого выполнить:

$ convert ~/tmp/foo.jpg c
(success, no output)

В качестве альтернативы вы можете изменить текущий каталог на foo.jpg:

$ cd ~/tmp
$ convert foo.jpg ~/Downloads/bar.jpg
(success, no output)

Лучше l oop будет повторяться над глобусами и правильно указывать в кавычках для надежной обработки пробелов и аналогичных имён в именах файлов:

for path in "$HOME/sandboxArea/SecondCam"/*
do
  convert "$path" -quality 30 "$HOME/sandboxArea/convertedB/${path##*/}"
done
...