Плагін фільтра

У підручнику Перший крок ми використали плагін типу procedure. Такі плагіни працюють без зображення чи drawable на вході. Зазвичай же плагін змінює зображення та його drawable — такі плагіни називають filter.

Що таке drawable?

Drawable у Lumi — це елемент зображення, на якому можна малювати, наприклад шар або канал. Плагіни фільтрів зазвичай працюють із цими елементами.

Приклад простого плагіна фільтра

#!/usr/bin/env lumi-scheme-interpreter-0.1

(define (scheme-simple-filter-plug-in image drawables)
  ;; Використати let для змінної message та основного коду
  (let ((message "hello, world"))
    ;; Вивести повідомлення в консоль помилок Lumi
    (lumi-message message)
    ;; Інвертувати кольори першого вибраного drawable
    (lumi-drawable-invert (vector-ref drawables 0) 1)))

;; Зареєструвати плагін
(scheme-register-filter
  "scheme-simple-filter-plug-in"           ;; Ім'я головної процедури
  "Simple Filter Plug-in Demo"             ;; Назва в меню Lumi
  "Tests a basic Scheme filter plug-in"    ;; Підказка
  "Author Name"                            ;; Автор
  "License"                                ;; Ліцензія
  "Date written"                           ;; Дата написання
  "*"                                      ;; Плагін потребує зображення
  SF-ONE-OR-MORE-DRAWABLE)                 ;; Потрібен один або більше drawable

;; Вказати розташування в меню
(scheme-menu-register
  "scheme-simple-filter-plug-in"
  "<Image>/Plug-in")

Скопіюйте текст і збережіть як simple-filter-plug-in.scm у папці simple-filter-plug-in в одній із папок плагінів Lumi. Папка плагінів — будь-яка папка зі списку: Lumi > Редагувати > Параметри > Папки > Плагіни

У Linux клацніть правою кнопкою файл simple-filter-plug-in.scm, перейдіть до Властивості > Дозволи і позначте Дозволити виконання файлу як програми. Коли файл на місці, має права на виконання і не містить синтаксичних помилок, після перезапуску Lumi він з’явиться в верхній смузі меню в розділі Plug-in.

Запуск плагіна

  1. Відкрийте зображення (цей плагін фільтра потребує зображення).
  2. Відкрийте Інструменти > Налагодження > Консоль повідомлень, щоб побачити повідомлення.
  3. Виберіть Simple Filter Plug-in Demo у меню Plug-in.
  4. Кольори одного з вибраних шарів будуть інвертовані, а повідомлення з’явиться в консолі помилок.

Редагування плагіна

Плагін можна налаштувати, відредагувавши файл .scm. Наприклад, щоб змінити повідомлення:

  1. Відкрийте файл і знайдіть рядок з message.
  2. Замініть "hello, world" власним текстом.
  3. Збережіть файл.

У Lumi 3 плагіни не потребують перезавантаження — збережені зміни застосовуються одразу. Просто запустіть плагін знову, щоб побачити оновлене повідомлення.

Розбір плагіна

Рядок shebang

Перший рядок гарантує, що скрипт працює як плагін у Lumi 3:

#!/usr/bin/env lumi-scheme-interpreter-0.1

Визначення процедури

Процедура приймає два аргументи: активне зображення та вибрані drawable.

(define (scheme-simple-filter-plug-in image drawables)

Основна логіка

Оператор let визначає змінну та виконує операції над drawable.

(let ((message "hello, world"))
  (lumi-message message) ;; Вивести повідомлення в консоль помилок Lumi
  (lumi-drawable-invert (vector-ref drawables 0) 1)) ;; Інвертувати кольори першого drawable

Реєстрація плагіна

Плагін зареєстровано в Lumi як filter plug-in:

(scheme-register-filter
  "scheme-simple-filter-plug-in"           ;; Зареєструвати головну процедуру
  "Simple Filter Plug-in Demo"             ;; Назва в меню Lumi
  "Tests a basic Scheme filter plug-in"    ;; Підказка
  "Author Name"                            ;; Автор
  "License"                                ;; Тип ліцензії
  "Date written"                           ;; Дата написання
  "*"                                      ;; Плагін потребує зображення
  SF-ONE-OR-MORE-DRAWABLE)                 ;; Потрібен один або більше drawable

Реєстрація в меню

Цей рядок вказує розташування плагіна в меню:

(scheme-menu-register
  "scheme-simple-filter-plug-in"
  "<Image>/Plug-in")

Усунення несправностей

Якщо плагін не з’являється, перевірте розташування, назву та права на виконання.

Розташування має бути в шляху пошуку плагінів. Ім’я файлу має відповідати назві папки, що його містить. Файл має мати права на виконання.

Консоль повідомлень — цінний інструмент для налагодження власних плагінів. Якщо плагін поводиться не так, як очікується, перевірте тут повідомлення про помилки або журнали. Вікно Термінал також може показати інформацію для налагодження та повідомити про проблеми завантаження.