|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Andrey Kiselev 2:5020/400 06 May 2003 19:43:46 To : Vladimir Mosgalin Subject : Re: Gimp: пакетная обработка файлов -------------------------------------------------------------------------------- .RFC-Message-ID: <88l89b.tgm.ln@127.0.0.1> From: Andrey Kiselev <dron@ak4719.spb.edu> Vladimir Mosgalin <Vladimir.Mosgalin@p17.f1041.n5030.z2.fidonet.org> wrote: VM> Расскажите, как в гимпе обработать сотню файлов одинаковым образом. VM> В фотошопе нужно было нажать "запись макроса", сделать действия, потом VM> сказать "обработай пачку файлов этим макросом". Как тут? VM> Я знаю про умное слово script-fu, но не писать же мне в текстовом VM> редакторе непонятно что, предварительно долго выискивая названия нужных VM> мне функций? Если уж без него никак, как сказать гимпу самому его VM> написать по пачке действий? Вот тебе пример скрипта, решающий задачу, о которой тут недавно спрашивал Захар. Берем файл, поворачиваем на 90 градусов, делаем либо постеризацию, либо индексирование. Сохраняем в двух разных форматах. ; File scan.scm (define (scan filename) (set! img (car (gimp-file-load 1 filename filename))) (gimp-image-undo-disable img) (set! drawable (car (gimp-image-active-drawable img))) (plug-in-rotate 1 img drawable 3 1) ; Постеризация, если надо (gimp-posterize drawable 16) ; Индексация, опять же, если надо (gimp-convert-indexed img 0 0 16 0 1 "") (set! outname (string-append "" filename ".png")) (file-png-save 1 img drawable outname outname 0 9 0 0 0 0 0) (set! outname (string-append "" filename ".gif")) (file-gif-save 1 img drawable outname outname 0 0 0 0 ) ; Для визуального тестирования (на одиночном изображении) ; (gimp-display-new img) (gimp-image-delete img) ) ; Register script with script-fu. (script-fu-register "scan" "<Toolbox>/Xtns/Script-Fu/Dron/Scan" "Process scanned images" "Andrey Kiselev <dron@ak4719.spb.edu>" "Andrey Kiselev" "2003-04-05" "" SF-FILENAME _"Scanned image" "") Это кладется в $HOME/.gimp/scripts. Для пакетной обработки пускаем прямо из шелла: $ for i in *.ppm; do gimp -i -b "(scan \"$i\")" "(gimp-quit 0)"; done Само собой, тут есть еще куда руки приложить (правильно переписывать суффикс, например). Hо для начала, я думаю, сгодится. Hекоторые идеи будут более понятны. -- Andrey V. Kiselev --- ifmail v.2.15dev5 * Origin: Scientific Research Center for Ecological Safety Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/17229fdad213.html, оценка из 5, голосов 10
|