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

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

это если тебе в будущем понадобится это делать. а если нет - то проще ручками, потому что на написание скрипта у тебя наверняка не меньше времени ушло
недавно делал подобную операцию, правда я не только ресайзил, но из тифа в джепег перегонял около 180 изображений. Написание и отладка - 5 минут, да и есть в сети готовые, а дальше машина уже сама все делает =)
Вверху было написано - две минуты. Я думаю это как раз время, которое потребовалось для подбора команд. Я обычно вставляю в начало действующей команды (в данном случае convert) echo и смотрю что получается. 3-4 "подхода" (в смысле - неправильно сформированных команды) и последний вариант идёт в дело. Редко когда больше минуты это занимает - обычно несколько секунд...
Угу. Никакого скрипта не было, только две команды — напечатать их пара минут (с учётом поглядывания в документацию — если наизусть, хватит и минуты).
НЛО прилетело и опубликовало эту надпись здесь
В смысле? Вытащить из каждой картинки время и дату её создания и добавить в HTML на выходе? Или добавить к имени каждой картинки (файла)?
НЛО прилетело и опубликовало эту надпись здесь
date +'%Y-%m-%d-%H:%M'
не согласен, "лучше день потерять зато потом за пять минут долететь" (с) )))
Да ну, какой день, в скрипте в самом деле ничего сложного, пишется за 10 минут а то и меньше, естественно при знании баша, хотя бы минимальном.
постепенно начинаешь использовать такие штуки и для музыки, и для видео, и для фоток и для всего остального. Потом открываешь для себя csh... и понеслась.. =)
csh — зло.
Обычно лучше посидеть подумать десять минут и сделать работу за минуту, чем херячить час.
Я хоть и сам линуксоид, но не стал бы так трагедизировать вышеописанную задачу. Почти любой современный просмотрщик картинок умеет делть HTML-лист с их миниатюрками. И это занимает меньше минуты.

Другой вопрос, что консоль всеравно рулит, птолько в этом примере плохо видно.
эм. например? какой просмотрщик? (мы говорим о *nix-based)
а... в никсах не знаю :) еще не приходилась сталкиваться.

Ну можно например XnView поставить. Он умеет. Есть версии и под Линукс
и под Виндовс.

А вообще, в данном случае, я бы тоже сделал как вы :)

Тут нужно подчеркнуть, что обычно в дистре любого Линукса уже есть все
что нужно, а в случае винды аналогичные программы еще нужно найти,
скачать и поставить. Некоторые возможно даже решат что их нужно купить
:)
НЛО прилетело и опубликовало эту надпись здесь
мы в блоге о linux и говорим о linux. причём тут windows-просмотрщик?!
НЛО прилетело и опубликовало эту надпись здесь
И поэтому вместо того чтоб выгонять линуксоидов вы решили к ним лезть начать?
Лучшая защита - это нападение :)
Gwenview помнится умеет, думаю вы очень недооцениваете линукс
f-spot
это не менеджер картинок.
gthumb

или тебе нужно, чтобы какой-нибудь qiv или eog умел галереи делать?
gThumb умеет
digiKam, Gwenview
P.S.: они сразу генерят HTML-файл, и найти этот пункт в меню даже быстрее, чем написать те команды в баше, но лично я не доверяю генераторам HTML-кода (почему-то в большинстве случаев код получается невообразимо грязный и требующий дальнейшей обработки), и предпочитаю описанный в статье способ.
digiCam например
ShowImage
Gwenview, for example
А еще проще использовать скрипты для наутилуса, вот, например. Но bash однозначно рулит.
Вещь полезная и нужная, одобряю :) Но во-первых, при нынешнем развитии линукса консолью пользоваться уже как-то некузяво, так как есть GUI-средства вроде Picasa например или xnview - где это можно сделать за такое же время и при этом чувствовать себя белым человеком, а не красноглазым фанатиком (субъективно, сам такой =). А во-вторых, года два назад для своей фотогалереи написал особый PHP-скрипт, который делает это прямо на сервере (можно и у себя конечно) в реалтайме. Хотя конечно по целям и средства.
Понимаете, я уже не один год работаю в bash'е и мне проще набрать пару команд, чем выбирать просмотрщик и копаться в его бесконечных менюшках. Кому-то будет проще с просмотрщиком — мне нет. Мощь консоли, думается мне, именно в том, что почти не нужно изучать что-то новое, если ты уже умеешь в ней работать. Синтаксис разных программ очень схож и, если что, можно быстренько глянуть мануал. Найти, как сделать всё то же через просмотрщик точно займёт у меня больше времени.
Ладно ладно, сам любитель дёргать звук из клипов ffmpeg'ом или грабить диски lame'ом ;)
Угу. ffmpeg, кстати, очень удобен в использовании. Сегодня как раз нужно было извлечь звук из фильма для озвучки его на русском (фильм, озвучка). Элементарно: ffmpeg -i PSA-Web-1280.ogg -acodec copy audio.ogg
При этом способе даже перекодировки никакой не происходит — просто копия аудио-потока.
Хех, вы уж простите, что влезаю со своим фотошопом, но там все гораздо проще и программирования знать не надо. Минуту настраиваем batch, куда можно запихнуть пару шарпен филтьров (для уменьшеных картинок это актуально), дальше все зависит от кол-ва картинок и мощности машины.
Угу. Вот только Photoshop CS3 10.0 Full Ru — 1 016,00 у.е.
Also, смотрите мой комментарий выше.
Не, ну полностью согласен, ваш пример 100% гиковский. Я хоть сам и гик немного, но для меня это все выглядит каким-то анахронизмом...
Вот видите, как хорошо, что каждый сейчас может выбрать себе подходящий путь в использовании компьютера? :)
Чем бы там он не казался - это мощнейший инструмент. Интересно почему столь любимая всеми MS именно сейчас выпускает свой шелл?? Они регрессируют в сторону анахранизмов и ненужных гик примочек? :)
Какой он гиковский, так, рутина...
Угу. Гиковский — это решить задачу брутфорсом на Перле, например. Я так в школе как-то сделал.

10. Аладдин хотел вызвать джина, но забыл, сколько раз нужно хлопнуть в ладоши. Зашедший в гости Хоттабыч сказал: — Если число хлопков возвести в квадрат и умножить на -7, а потом прибавить четвёртую степень числа хлопков, то получится число 18. Сколько раз должен хлопнуть в ладоши Аладдин, чтобы вызвать джина?

Элементарно. Число хлопков вряд ли уж больше 20 и вряд ли меньше 1, так что: perl -e 'foreach (1..20) { if ( $_ ** 2 * -7 + $_ ** 4 == 18) {print "$_\n"; exit} }'

Я тогда так в тетрадку и написал с ответом «3». Хотя… Хоттабыч ведь был далёк от точных наук? Если я хоть что-то понимаю в истории.
На настройку пресловутого batch'а уйдёт столько же времени. Плюс время на запуск этого монстра (не знаю как у вас, а у меня PhotoShop только запускается секунд 30 если я давно его не дёргал). ImageMagick проще и быстрее.
Зато в батче можно прилепить лого или другой водяной знак :) Шучу...
ImageMagick'ом тоже можно :)
Ну, радоваться надо, что можно делать и так и так. Я вот радуюсь. Надо сделать действие один раз — выберем меню. Надо регулярно пользовать — выберем скрипт.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Да, Вы полностью правы. Я очень хотел спать уже (только сейчас проснулся) и допустил ошибку. А валидатор не запустил — потому что хотел уже сдать проект и проверить валидатором завтра, ибо исправить будет не поздно. В общем, так или иначе, спасибо большое. :)
привержанцам делать все ручками предлагаю осуществить такое
find . -type f -exec chmod 660 {} \;;
объясняю данная строчка ищет в текущей директории файлы и меняет их права на 600 (rw-rw-rw)
на написание данного скрипта, при условии использования гугла уйдет не больше 5мин, а попробуйте изменить все вручную если если в текущей директории присутствует более ста вложенных поддерикторий и около 20000 файликов
Файловый менеджер в GNOME умеет рекурсивно вглубь менять права.
PS: хотя я тоже сделаю это в консоли, потому как она всегда под руками, в отличие от...
да но он не сможет поставить тебе на файлы одно, на папки другое. Или сможет?
Сможет. У него отдельные настройки для файлов и для каталогов.
chmod вроде тож рекурсивно может к папке применяться (-r)
Но без определённой эзотерики с find невозможно отличать права для каталогов и права для файлов. В этом суть.
не могу себе представить, зачем это может быть нужно.
единственный вариант: 6 запрещает eXecute. если так, спасает symbolic mode. =)
типа chmod -R ug+rw ./
есть еще вариант chmod -R ug+rwX ./
тогда он еще и execute папкам выставляет, но только папкам.
> find . -type f -exec chmod 660 {} \;;
> объясняю данная строчка ищет в текущей директории файлы и меняет их
> права на 600 (rw-rw-rw)

вначале вы пишите 660, потом уже 600.
и вообще, 600 — это rw-------, а 660 — это rw-rw----.
Моё любимое значение — 666. Всем всё, но только не исполнение.
Права надо выставлять такие какие нужны, а не какие любимые :)
Ты уж сразу предлагай через sudo и на /bin применять... Или на что нибуть более важное. :)
660, это права rw-rw----, а 600 - это rw-------.
всю жизнь делал так:
find -type f -print0 | xargs -0 chmod u=rw,go= -c

:-D Для таких штук и гугл не нужен. Нужен man.
chmod -R a=rw .
man chmod как гритса
понял, что не прав
Консоль нужна в первую очередь не для типовых задач, для которых имеются более удобные GUI средства (которые уже, кстати, выше в комментариях были упомянуты), а для задач, которые не являются типовыми, и, соответственно, найти утилиту под такую задачу не получится, а писать никто не станет, т.к. задача одно-двух разовая. Консоль рулит также для написания заданий, исполняемых по крону.

И вот при отсутствии консоли решение таких задач на самом деле превращается в головную боль.

Так что, ИМХО, пример из статьи в этом плане не совсем удачный. Разве что как демонстрация возможностей консоли.
Каждый хочет как он хочет...:)
Но мне понравилось :)
Слушай, а эти заклинания:



for f in *.jpg ; do convert -quality 90 -resize 80 "$f" "${f%.jpg}-thumb.jpg" ; done



не заманят проклятых джипегов с именами ...-thumb-thumb-thumb.jpg, которые сожрут нафик диск на твоем сервере?
Нет. Маски разворачиваются до выполнения.
Это, кстати, не сервер. Это мой desktop. :))
И да, как ответили выше, не сожрут.
Я, конечно, дико извиняюсь, но любая нормальная смотрелка картинок это умеет и так. В моём IrfanView по крыжику "batch conversion" это делается в несколько кликов.

Примером того, что консоль рулит, этот скрипт будет только при дополнительных условиях: "картинок много и они на удалённом сервере" либо "это надо делать регулярно".
А со скриптом это делается в 1но нажатие + не всегда есть жлание капаться в менюшках в поисках чего-то, ведь уже знаешь хорошо инструмент которым это можно проделать быстро
weight=\"80\" height=\"53\"

хе-хе
а, типа, если фотографии разных размеров? :)
тобишь, что weight=\"80\" - это понятно
а вот height=\"53\" откуда? =)
все котографии вертикально ориентированы, с единым соотношением длин сторон
или
превьюшки получатся непропорциональными, что им простительно, зато одинаковыми! :)
Первое — они одинакового разрешения. Я, кстати, как отметили выше, ошибся (спать очень уже хотелось). Надо width, а не weight.
Консоль действительно рулит не по-детски, с этим спорить бессмысленно. Но пример, на мой взгляд, выбран не самый удачный. Действительно, такие вещи, как создание миниатюр, обычно делаются с помощью тулзов работы с картинками, раз уж вы всё равно их используете для просмотра фоток.
Хотя если вы просматриваете фотки командой cat, то... тогда вы настоящий гик. :-)
как по мне консоль - просто очень удобная вещь...
консоль, консоль... суть-то в bash/sh/csh/zsh... т.е. в том что под рукой есть скриптовый язык. Я вот например т.к. весьма неплохо чувствую себя в питоне - даже иногда в интерактивном шелле питона скрипты ваяю. Последний раз надо было:


а) скопировать 125 фотографий огромного размера
б) сделать 6 архивов по 20 в каждом (в последнем - 25)

Причём общее время копирования фоток было около 2 часов, а архивы нужно было делать сразу как только набирается новая "пачка" из 20 фотографий, т.к. это все сразу копировалось в вебрут и использовалось сторонними людьми. Им нельзя было ждать 2 часа, нужно было чтобы скачав 1 архив, они сразу бы видели следующий.

На питоне заняло ~7-8минут. Можно было канешна сделать и руками, периодически поглядывая сколько фоток переписалось и каждые 20 засовывать в архив. Но мне жутко хотелось спать и следить за всем процессом не хотелось вовсе =). В итоге вместо 2 часов - 8 минут. При этом я не писал скрипт питона - просто интерактивный шелл.. =)
Ресайз — это несерьёзно :-)
ls [0-9]*.png|xargs -I_ -n1 convert map.png _ -fuzz 1% -deconstruct -delete 0 +repage +dither -colors 32 -depth 8 _
Заменяет картинки с начинающимися с цифры именами их областями, отличающимися от map.png.
Впрочем, я не утверждаю, что в Фотошопе это нельзя автоматизировать. Но мне проще так... Да и нет у меня Фотошопа.
Я смотрю на эту дискусию и впоминается цитата с изначального баша:

a sprite is anything not static
a sprite is a variable object
be it 2d or 3d
a sprite is a fucking soda
you god damn geekass bastards

Главное, что круто, это то, что можно по разному решить одну задачу. TIMTOWTDI, none the less.

Некруто, это идеализирование и навязывание какого-то способа решения задачи, чем чаще всего грешат линуксойды или ГНЮ-гики (взять того же Столлмана, хотя бы).

А так или иначе, спасибо автору за рецепт.
Блин, порезало цитату. Вот она ещё раз:

Sigurd: a sprite is anything not static
SRElysian: a sprite is a variable object
SRElysian: be it 2d or 3d
TorMuck: a sprite is a fucking soda
TorMuck: you god damn geekass bastards
Существует миллион способов это автоматизировать без всякого bash, и даже без консоли вообще.
Я в Виндах bat пользую, тоже неплохо
Помню даже как то в деревне игру написал на нем.. Что то типа кто хочет стать миллионером, правда там choice.exe нужен был еще
imagemagick рулит конечно :) сам пользовался для конвертации фотографий в формат, подходящий для плеера iRiver S10

я бы поставил quality в 95 и добавил бы кроп. иногда превьюшка лучше смотрится после ресайза+кропа, чем просто сжатая
может кому пригодится - вот тут код - http://out.com.ua/blog/2007/06/17/useful-stuff/
И насыщенности цветам надо немного прибавлять.
имхо, дело не в cli, а в том, что есть такой софт, который умеет пакетно обрабатывать изображения. если к нему приделать гую с названием типа small image converter, было бы еще удобнее.
Часто пользуюсь консолью в Win, но она там какая-то игрушечная.
Также, например, можно перекодировать множество файлов из одной кодировки в другую. Чтобы это сделать в Windows, нужно очень долго мучится.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Пост - отличная иллюстрация к бояну: "настоящий сисадмин всегда за 1 час напишет скрипт, который за 1 минуту решит задачу, на которую у обычного юзера ушло бы 5 минут" :)))

Но самое главное - приписка: "...при том, что задачу нужно решить лишь 1 раз."
Не говорите глупости. В самой заметке и ниже в комментариях было объяснено, почему мой вариант в данном случае занял гораздо меньше времени, чем другие.
Для изменения множества картинок сразу лучше вместо for ... convert юзать mogrify.
А как этот скрипт сделать Nautilus скриптом, чтобы правой кнопкой делайть ресайз выбранным фотографиям?
Может кто-нибудь помочь?
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.