[РЕШЕНО] ImageMagick - холст

vasek
И лучше использовать скрипт
+1
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Я не люблю скрипты, я люблю простые элегантные решения, итог
find -name '*.jpg' -exec sh -c 'identify -format "%[fx:w<1600]\n" "$0" | grep -q 1' {} \; -print0 | xargs -0 mogrify -gravity center -extent 1600
всем спасибо, подсказка с identify была очень важной, так-же из документации я узнал что у -extent нет опций как у -resize{%}{@}{!}{<}{>} и в этом я не вижу никакой логики...
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych
Я не люблю скрипты, я люблю простые элегантные решения
Это уже я понял давно. Но это, конечно, дело вкуса.
Имхо — скрипт более понятен, более гибче.
Ты уже не 1-ый раз строишь однострочные команды по перестраиванию изображений и тратишь много времени. Имея 2-3 скрипта на данную тематику, их на много проще подстраивать под новую задачу.
PS …. а насчет элегантности вопрос спорный.
Ошибки не исчезают с опытом - они просто умнеют
vasek
а насчет элегантности вопрос спорный.
скрипты я использую, вот например что получилось в итоге
#!/bin/bash
find -name '*.jpg' -exec mogrify -resize x1200 {} {} \;
find -name '*.jpg' -exec sh -c 'identify -format "%[fx:w<1600]\n" "$0" | grep -q 1' {} \; -print0 | xargs -0 mogrify -gravity center -extent 1600
find -name '*.jpg' -exec convert -quality 75 {} {} \;
find -name '*.jpg' | xargs mogrify -strip
поэтому стараюсь одну операцию записать одной строкой
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych
поэтому стараюсь одну операцию записать одной строкой
это чудо, даже выглядит жутко))
лучше наверное сделать как то так..
IFS=$'\n'
_ar=(`find -name '*.jpg'`)
for _i in "${_ar[@]}"; do
  echo $_i;
done
Ошибки в тексте-неповторимый стиль автора©
indeviral
лучше наверное сделать как то так
не соображу что получиться в моем случае если применить вашу конструкцию?
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych, читать не умеешь коды, а пишешь..
хотя это не удивительно с "программистами" однострочниками... там чтение кода не предусмотрено... )))

да, там только малая часть.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
indeviral
лучше наверное сделать как то так..

IFS=$'\n'
_ar=(`find -name '*.jpg'`)
for _i in "${_ar[@]}"; do
echo $_i;
done
а не проще вместо всего этого записать 1 строчку ?
find -name '*jpg' > ~/find.list
Ошибки не исчезают с опытом - они просто умнеют
vasek
а не проще вместо всего этого записать 1 строчку ?
Конечно проще. Только вот если появится необходимость экранирования, те же пробелы в названиях?
Да и по файловая обработка она гибче, можно там переместить только измененные файлы в другое место, или там дописать чего к названию.

palpalych
не соображу что получиться в моем случае если применить вашу конструкцию?
Да вы на прошлой страницы сами тоже самое написали))) а vasek подробно расписал как оно должно работать, я только IFS добавил...
IFS=$'\n' _ar=(`find -name '*.jpg'`)
for _i in "${_ar[@]}"; do
    mogrify -resize x1200 $_i
    if [ 1600 -gt $(identify -format "%w" "$_i") ]; then
        mogrify -gravity center -extent 1600 $_i
    fi
    convert -quality 75 $_i
    mogrify -strip $_i
done
Ошибки в тексте-неповторимый стиль автора©
indeviral
Да вы на прошлой страницы сами тоже самое написали
посыпались ошибки
convert: no images defined `./mfr/4/yu/05/1.jpg' @ error/convert.c/ConvertImageCommand/3258.
convert: no images defined `./mfr/4/yu/05/3.jpg' @ error/convert.c/ConvertImageCommand/3258.
convert: no images defined `./mfr/4/yu/05/4.jpg' @ error/convert.c/ConvertImageCommand/3258.
что-то в этой строке не ладно
convert -quality 75 $_i
если заменить convert на mogrify то работает, наверное из-за этого
Они выполняют схожие действия, но mogrify работает с несколькими файлами сразу, а convert – по одному

nafanja
читать не умеешь коды, а пишешь..
никаких кодов я не пишу, в чистом виде все "мои коды" это плагиат из гугла, подогнанный под мои нужды, мог бы я писать код я бы задавал вопросы?
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
 
Зарегистрироваться или войдите чтобы оставить сообщение.