Как преобразовать все изображения в каталог в jpg?

Чтобы использовать nvidia optimus (используя 2 видеокарты) в ubuntu, вам нужно установить пакет шмелей. Это добавит возможность использовать встроенные графические карты Intel, но также использовать nvidia при запуске приложения с префиксом optirun. (например, optirun firefox)

Страница проекта здесь: https://github.com/Bumblebee-Project/Bumblebee/wiki/

2
задан 5 February 2018 в 14:21

3 ответа

Я бы рекомендовал использовать инструмент convert из ImageMagick:

convert input.png -resize 900x900 output.jpg

Опция -resize должна быть довольно очевидной, а формат выходного файла автоматически определяется с использованием расширения своего имени. 1]

Чтобы запустить это во всех файлах в текущем каталоге, попробуйте следующее:

for inputfile in ./* ; do
    outputfile="${inputfile%.*}.jpg"
    convert "$inputfile" -resize 900x900 "$outputfile" &&
    [[ -e "$outputfile" && "$inputfile" != "$outputfile" ]] && rm "$inputfile"
done

Это займет все файлы из текущего каталога (независимо от типа файла) и для каждого входа файл создайте соответствующее имя выходного файла, удалив старое расширение и добавив вместо него «.jpg». Затем он использует convert, как описано выше, для изменения размера и преобразования изображения, которое создает новый файл и оставляет оригинал как есть. Если это было успешно (&&), проверьте, существует ли выходной файл и если имя входного файла отличается от имени выходного файла (например, если один из исходных файлов уже был jpg). Теперь, если эти условия выполнены, мы предполагаем, что мы можем удалить входной файл.

4
ответ дан 22 May 2018 в 13:17
  • 1
    почему это должно работать, если mogrify -format jpg -- * не – yukashima huksay 8 February 2018 в 13:18
  • 2
    Я думаю, проблема в том, что файлы не имеют расширений – yukashima huksay 8 February 2018 в 13:21
  • 3
    Вы сказали, что использование памяти стало слишком огромным, поэтому я заменил ваш единственный вызов на все файлы одновременно, обрабатывая все изображения отдельно. Кроме того, я думаю, что convert лучше, поскольку вы хотите переименовать файлы (расширение) при преобразовании в jpg, я предполагаю. Также convert должен распознавать формат, основанный на содержимом (магическое число), если не указано расширение. – Byte Commander 8 February 2018 в 13:31

Я бы рекомендовал использовать инструмент convert из ImageMagick:

convert input.png -resize 900x900 output.jpg

Опция -resize должна быть довольно очевидной, а формат выходного файла автоматически определяется с использованием расширения своего имени.

Чтобы запустить это во всех файлах в текущем каталоге, попробуйте следующее:

for inputfile in ./* ; do outputfile="${inputfile%.*}.jpg" convert "$inputfile" -resize 900x900 "$outputfile" && [[ -e "$outputfile" && "$inputfile" != "$outputfile" ]] && rm "$inputfile" done

Это займет все файлы из текущего каталога (независимо от типа файла) и для каждого входа файл создайте соответствующее имя выходного файла, удалив старое расширение и добавив вместо него «.jpg». Затем он использует convert, как описано выше, для изменения размера и преобразования изображения, которое создает новый файл и оставляет оригинал как есть. Если это было успешно (&&), проверьте, существует ли выходной файл и если имя входного файла отличается от имени выходного файла (например, если один из исходных файлов уже был jpg). Теперь, если эти условия выполнены, мы предполагаем, что мы можем удалить входной файл.

4
ответ дан 17 July 2018 в 21:31

Я бы рекомендовал использовать инструмент convert из ImageMagick:

convert input.png -resize 900x900 output.jpg

Опция -resize должна быть довольно очевидной, а формат выходного файла автоматически определяется с использованием расширения своего имени.

Чтобы запустить это во всех файлах в текущем каталоге, попробуйте следующее:

for inputfile in ./* ; do outputfile="${inputfile%.*}.jpg" convert "$inputfile" -resize 900x900 "$outputfile" && [[ -e "$outputfile" && "$inputfile" != "$outputfile" ]] && rm "$inputfile" done

Это займет все файлы из текущего каталога (независимо от типа файла) и для каждого входа файл создайте соответствующее имя выходного файла, удалив старое расширение и добавив вместо него «.jpg». Затем он использует convert, как описано выше, для изменения размера и преобразования изображения, которое создает новый файл и оставляет оригинал как есть. Если это было успешно (&&), проверьте, существует ли выходной файл и если имя входного файла отличается от имени выходного файла (например, если один из исходных файлов уже был jpg). Теперь, если эти условия выполнены, мы предполагаем, что мы можем удалить входной файл.

4
ответ дан 23 July 2018 в 22:09

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

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