Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Подскажите по работе с Gimp script-fu  (Прочитано 1799 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sinij

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Подскажите по работе с Gimp script-fu
« : 10 Октября 2008, 17:34:25 »
Нашел скрипт для ресайза картинок.

(define (batch-resize pattern size quality)
  (let* ((filelist (cadr (file-glob pattern 1)))
      (len (if (string? size) (string-length size) 0))
      (rate (if (and (> len 0) (char=? #\% (string-ref size (- len 1)))) (/ (string->number (substring size 0 (- len 1))) 100) 0))
      (size (if (> rate 0) 0 (if (> len 0) (string->number size) size)))
)
 (while (not (null? filelist))
   (let* ((filename (car filelist))
        (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
        (drawable (car (gimp-image-get-active-layer image)))
        (old-width (car (gimp-image-width image)))
        (old-height (car (gimp-image-height image)))
        (width (if (> rate 0) (* rate old-width) (if (> old-width old-height) size (* size (/ old-width old-height)))))
          (height (if (> rate 0) (* rate old-height) (if (> old-width old-height) (* size (/ old-height old-width)) size)))
        )
        (gimp-image-scale image width height)
      (script-fu-drop-shadow  RUN-NONINTERACTIVE image drawable 8 8 15 '(200 200 200) 50 1)
        (file-jpeg-save RUN-NONINTERACTIVE image drawable filename filename quality 0 1 1 "" 2 1 0 0)
        (gimp-image-delete image)
      )
      (set! filelist (cdr filelist))
    )

  )
)

И хочу добавить создание тени к рисунку

(script-fu-drop-shadow  RUN-NONINTERACTIVE image drawable 8 8 15 '(200 200 200) 50 1)


Но все вылетает с ошибкой. Подскажите что не так сним. :'(

Оффлайн nixoid

  • Любитель
  • *
  • Сообщений: 81
  • Бубунтовод
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #1 : 09 Декабря 2008, 00:32:56 »
если запускать в консоли, будет выдано, где конкретно ошибка, тогда и разбираться надо...
А у меня вопрос такой, что конкретно делает конструкция (char=? #\% (string-ref size (- len 1))), с LISP'ом только знакомлюсь нарыл этот же скрипт в инете ;), всё остальное вроде ясно, а тут - затык. Прошу людей продвинутых в лиспе объяснить... :-[

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #2 : 09 Декабря 2008, 16:01:52 »
Имхо, питон проще.
Не могу что-то найти ссылку, но пример вот:
(Нажмите, чтобы показать/скрыть)
Плюс к тому, гимп дает интерактивную питонью консоль, позволяющую свободно экспериментировать с разными функциями.

Для того, чтобы функция получила в аргументах изображение, надо в вызове gimp.install_procedure подредактировать предпоследний параметр, добавить в список (PDB_IMAGE, "image", "Input image")
Т.е. в результате должно получиться
[(PDB_INT32, "run_mode", "Run mode"),
 (PDB_IMAGE, "image", "Input image")]
И в объявлении самого метода надо написать, что у него теперь три параметра: (self, run_mode, image)
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн sinij

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #3 : 09 Декабря 2008, 18:24:36 »
А есть где то мануал на русском по питону по обработке изображений?

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #4 : 09 Декабря 2008, 18:52:39 »
Гугл по запросу Python документация выдал кучу ссылок.
Ищущий да обрящет!  ;)

Здесь нужен референс по функциям гимпа.
Запускаем консоль, пишем первые несколько строк из приведенного скрипта

import gimp, gimpplugin
from gimpenums import *
pdb = gimp.pdb

Потом
dir(pdb)
Мне вывалило список имен функций из нескольких страниц.
Полезно скопировать его в отдельный файл и изучить.

Среди прочего там есть script_fu_drop_shadow и еще куча разных методов с именами типа file_XXXX_save.

Дальше пишем в консоли
dir(pdb.script_fu_drop_shadow)Получаем еще информацию.
Можно еще писать
help( объект )или
print объект.__doc__
Но здесь это слабо помогает, т.к. интерфейс сгенерирован, по-видимому, автоматически и мануалов никто не писал.
Но есть вот: http://developer.gimp.org/api/2.0/index.html
 
« Последнее редактирование: 09 Декабря 2008, 19:06:07 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн sinij

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #5 : 09 Декабря 2008, 21:13:36 »
Спасибо.
Просто в том что в нете по питону практически нет ничего по обработке картинок.

 У меня 5 книг по питону и ни в одной нет ничего по обработке изображений с Gimp ом.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Подскажите по работе с Gimp script-fu
« Ответ #6 : 10 Декабря 2008, 12:05:17 »
Просто в том что в нете по питону практически нет ничего по обработке картинок.
У меня 5 книг по питону и ни в одной нет ничего по обработке изображений с Gimp ом.

Есть шансы написать шестую.
Если выйдет, я с удовольствием куплю и даже прочитаю.
Пока что есть http://www.meetthegimp.org
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.016 секунд. Запросов: 20.