Как стать автором
Обновить

Комментарии 31

А причем тут линукс? Под винду и фряху имагик тоже есть.
А mac os x?
давно искал универсальное решение для спрайтов
В макпортах есть.
sudo brew install imagemagick
Не линукс, а Линус Торвальдс, у которого книга про создание линукса как раз называется «Just for fun»
на чем проверял о том и написал
Вообще-то Торвальдса зовут не Линукс, а Линус
Как говорил ВЕЛИКИЙ ЛИНУС
каюсь, моя вина, принял твой вариант
Вообще наверно можно скриптик написать, который создает папку и там создает клееный файл и css готовый
Вроде бы круто, да как-то уж специфично совсем. Я нередко использую смещение по горизонтали, не только по вертикали. Остальное тупо заливаю черным. Для ие нередко приходится делать свои спрайты, с отдельными картинками без полупрохзрачных пикселей.
Кстати, недавно вешали скрипт вконтактовский, который шустрит по странице выдергивая картинки (я уж не помню зачем и почему), так вот когда началсьтво радуясь приобщению к соц сетям увидело этот спрайт — паники было… В общем если такое встретите, просто сделайте логотип отдельной картинкой, не в спрайте.

Только что дошло, что можно сначала часть склеить по горизонтали, а затем все это по вертикали. Надо и вправду подумать о том чтобы написать скрипт, который рядышком будет класть файлик с позициями. Автор, спасибо.
montage *.png -tile 5 -geometry 200x+5+5 sprite.jpg — выстраивает картинки в клетку
А вот от такой команды:
$ convert *png *gif -append result/result-sprite.png
Изображения встанут друг под другом.
показали бы здесь результат в виде картинки, чтобы было нагляднее.
НЛО прилетело и опубликовало эту надпись здесь
А так изменим качество изображений

#!/bin/bash
mkdir $HOME/temp #создаём папку, куда поместим обработанные файлы
chmod -R 777 $HOME/temp #это так, на всякий случай
echo «Введите качество JPEG для обробатываемых изображений (от 1 до 100):» #вывод на экран сообщения
read k #считываем введённое значение.
echo «Выбраное качество JPEG: $k» #выводим сообщение с выбранным значением
ls |grep .JPG >list.txt
ls |grep .JPEG >>list.txt #записываем в файл все наши изображения.
ls |grep .jpg >>list.txt
ls |grep .jpeg >>list.txt
i=1 #устанавливаем счётчик на 1
s=`cat list.txt |wc -l` #читаем отчёт и считаем строки
while [ $i -lt $s ] #цикл от i до s собственно = количеству обрабатываемых изображений
do
name=`sed ''$i'!d' list.txt` #прочитали имя изображения, убрали его из списка
echo Обрабатываю: $name #сюда вывели это имя
convert -quality $k ./$name $HOME/temp/$name #собственно конвертация
let «i = $i + 1» #переход к новому изображению
done
rm ./list.txt #удалить отчёт
мсье знает толк в извращениях.
весь ваш скрипт заменяется вот этим:
TMP=$(mktemp XXXXX)
for FILE in *[jJ][pP][gG] *[Jj][Pp][Ee][Gg]
do
convert -quality 80 "$FILE" "$TMP/$FILE"
done
Ненене
У вас значение константа, а у меня задай сам.
да пожалуйста.
TMP=$(mktemp XXXXX)
echo -n "Image quality: "
read $QUALITY
for FILE in *[jJ][pP][gG] *[Jj][Pp][Ee][Gg]
do
convert -quality $QUALITY "$FILE" "$TMP/$FILE"
done
смысл был в том, что у вас, мягко выражаясь, весьма странный алгоритм.
s/алгоритм/реализация/
И в чём же он странный?
ну как, у вас нерационально построен код:
>> chmod -R 777 $HOME/temp
зачем это? вы же только что создали папку, значит права на запись у вас автоматически в нее есть.
>> ls |grep .JPG >list.txt
>> ls |grep .JPEG >>list.txt #записываем в файл все наши изображения.
>> ls |grep .jpg >>list.txt
>> ls |grep .jpeg >>list.txt
зачем выполнять четыре одинаковых операции, когда можно выполнить одну: ls *[jJ][pP][gG] *[Jj][Pp][Ee][Gg]
и зачем весь этот список файлов загонять в текстовый файл, чтобы потом по строчке считывать из него, да еще таким странным способом (если вам так хочется, то уж проще
cat FILE | while read LINE
do
some operations with "$LINE"
done
плюс если у вас попадется файл с пробелом в имени, то такой файл не обработается.
а еще им можно вотермарки накладывать:
#!/bin/bash
for i in *.jpg; do composite -watermark 0 -compose bumpmap -gravity southeast water.png "$i" "${i/.png/_water.png}";done
тьфу. задумался не о том. расширение jpg у $i файла:
<code#!/bin/bash
for i in *.jpg; do composite -watermark 0 -compose bumpmap -gravity southeast water.png "$i" "${i/.jpg/_water.jpg}";done>
Чтобы про любой продукт можно было сказать «It is cool» :-) нужно его делать по «Стандарту» :-)
see: «man convert», «RFC*»…

а за example конечно-же спасибо автору :-)
При наличие вещей типа Lemonade вся эта консольная дрочка вприсядку кажется детским лепетом.
Замечательный и верный комикс. Между тем отослал этот пост знакомому HR'y и получил занятный ответ:

«Как вы мне надоели — предложите другой способ оценить общую адекватность человека и вероятность того, что он останется работать в компании в ближайшие пять лет. Мы вот не придумали.»

сорри, не к тому посту написал
Да примеров скиптов в инете завались, взять хотя бы эту страничку.
Ну, или почитать документацию и сделать скрипт самому.
реквестирую по топику на каждую из команд в man ImageMagick
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории