GIMP і Python можна встановити і використовувати на багатьох платформах, включаючи Linux®, Mac OS X® і Microsoft® Windows®. Крос-платформний характер як GIMP, так і Python означає можливість створювати складні плагіни для GIMP з використанням Python і запускати їх на різних платформах.
огляд GIMP
GIMP - це програма з відкритим вихідним кодом для роботи з зображеннями, яку багато хто використовує в якості повноцінної заміни деяких комерційних пропозицій. GIMP управляє складними об'єктами, такими як шари і шляхи. GIMP підтримує різні формати зображення і містить досить складні фільтри. GIMP користується потужною підтримкою і участю спільноти, так що знайти відомості про те, як використовувати або розширити GIMP, як правило, неважко.
Огляд мови сценаріїв Python
Для Python існує безліч модулів, які забезпечують потрібну функціональність, позбавляючи від необхідності писати свій власний код (прикладом служать модулі GIMP-Python) .В списку модулів Python зустрічається безліч готових модулів, придатних для вирішення найрізноманітніших завдань від операцій з Hypertext Markup Language (HTML ) і з'єднаннями Hypertext Transfer Protocol (HTTP) до роботи з файлами Extensible Markup Language (XML) (див. розділ Ресурси). Можна створювати власні модулі Python, що дозволить повторно використовувати фрагменти коду в межах підприємства.
Як і GIMP, Python користується значною підтримкою спільноти. Це означає можливість знаходити інформацію, а також завантажувати і використовувати щодо зрілі інструменти, що допомагають в програмуванні на Python.
Перш ніж перейти до читання наступної частини статті, встановіть Python на свою операційну систему відповідно до інструкцій на сайті Python. Переконайтеся, що Python правильно встановлений: відкрийте командний рядок і наберіть python --version. Результат повинен виглядати приблизно як, як в лістингу 1.
Лістинг 1. Перевірка правильності установки Python
Якщо потрібен плагін PyDev для Eclipse, виконайте наступні дії.
Малюнок 1. Створення нового проекту з плагіном PyDev для Eclipse
Не забудьте додати до свого проекту папку з модулями GIMP Python gimp і gimpfu. Додайте цей каталог в свій проект Eclipse (але не додавайте його до основного шляху) за допомогою пункту меню Project> Properties. як показано на малюнку 2.
Малюнок 2. Додавання каталогу модулів GIMP-Python до проекту в Eclipse
Натисніть кнопку PyDev - PYTHONPATH. Потім виберіть вкладку External Libraries (зовнішні бібліотеки) і натисніть кнопку Add source folder (Додати папку-джерело), щоб додати папку, в якій встановлюються модулі GIMP Python. Шлях буде приблизно таким: /usr/lib/gimp/2.0/python/.
В Eclipse можна запустити консоль Python. Коли видно консоль, виберіть зі списку консолей Pydev Console.
Реєстрація сценарію
Файли Python потрапляють в папку користувача GIMP. У Mac- і Linux-системах це папка
/.gimp-2.6/plug-ins. Файли сценаріїв Python повинні бути виконуваними і містити інтерпретатор Python в першому рядку, як стандартні декларації сценаріїв (див. Лістинг 2).
Лістинг 2. Елементарний сценарій Python, який виводить "Hello, world!"
Сценарій Python для GIMP потрібно зареєструвати, щоб помістити плагін в одне з меню GIMP. У лістингу 3 наведено мінімальний код, необхідний для реєстрації сценарію в GIMP і виведення "Hello, World!" на консоль при його виклику.
Лістинг 3. Реєстрація плагіна в GIMP
Метод register () передає GIMP інформацію про вашому плагін.
Метод register () має кілька параметрів, які говорять GIMP, як відображати меню для плагіна і який метод Python викликати при запуску плагіна з меню. У таблиці 1 наведені параметри методу register ().
Таблиця 1. Параметри і приклади методу register ()
Щоб отримати найактуальнішу інформацію про параметрах методу register, відкрийте консоль Python-Fu (натисніть Filters> Python-Fu> Console) і введіть команди, показані в лістингу 4.
Лістинг 4. Отримання довідки з використанням консолі Python
Після введення значень в метод register збережіть свій сценарій. Переконайтеся, що він виконується і знаходиться в папці .gimp2-6 / plug-ins.
Зберігши сценарій, запустіть GIMP з командного рядка за допомогою команди gimp. Це дозволить вам побачити будь-яку інформацію, виведену вашим плагіном, в тому числі вихідна повідомлення. Крім того, якщо в плагіні є помилки, ви їх побачите.
Запустивши GIMP, перейдіть в меню Image. де з'явиться новий пункт меню Resize to max. як показано на малюнку 3.
Малюнок 3. Новий пункт меню нового плагіна
Тепер, коли ваш плагін правильно зареєстрований в GIMP, і можна вибрати пункт меню свого плагіна, ви готові приступити до додавання коду Python для зміни розміру зображення.
Сценарій зміни розміру
Маючи плагін Python в GIMP, можна додати реальний код в метод plugin_main всередині коду плагіна.
У лістингу 5 показаний код для зміни розмірів зображення.
Лістинг 5. Додавання коду в метод plugin_main
Щоб змінити розмір зображення, код Python просто викликає метод pdb.gimp_scale_image. виконавши деякі елементарні обчислення, щоб визначити необхідні значення розмірів масштабується зображення. Оскільки значення, введені в поле, це максимальні значення, сценарій повинен перевірити як ширину, так і висоту поточного зображення, щоб визначити, чи потрібно обмежити його розміри. Якщо який-небудь розмір зображення більше максимального, плагін обмежує його до максимального розміру, а потім обчислює інший вимір.
Про інших методах, які можна викликати в сценарії Python, см. В Довідці GIMP Help> Procedure Browser. На малюнку 4 показаний браузер процедур методу pdb.gimp_image_scale.
Запуск сценарію плагіна зміни розміру
Додавши код зміни розміру, відкрийте зображення в GIMP. Виберіть свій новий пункт меню Image> Resize to max. Сценарій запитає у вас розміри, як показано на малюнку 5.
Малюнок 5. Вхідні параметри плагіна
При натисканні кнопки ОК виконується метод plugin_main. і ваш сценарій змінює розміри зображення.
Сценарій перетворення зображень
Тепер, коли у вас є плагін для зміни розмірів зображення, сценарій Python можна змінити так, щоб він зберігав зображення в іншому форматі. Це дозволить зберегти вихідне зображення у вигляді файлу JPEG і змінити його розмір відповідно до певними обмеженнями.
Доповнення до сценарію показані в лістингу 6.
Лістинг 6. Додавання коду для збереження JPEG-копії вихідного зображення
Ім'я потрібного методу можна отримати з бази даних процедур (змінна PDB) за допомогою пункту меню Help> Procedure Browser. як показано на малюнку 6.
Малюнок 6. Пошук методу для збереження файлів JPEG в браузері процедур
Константи, що використовуються для типів вхідних параметрів, беруться з бібліотеки gimpfu. Список доступних констант можна отримати, ввівши команди, показані в лістингу 7, з консолі Python в GIMP або Eclipse.
Лістинг 7. Отримання довідки по константам gimpfu
Константи починаються з PF_ і визначають типи, які можна використовувати для елементів управління форми введення.
Запуск відредагованого сценарію плагіна
Після того як в сценарій Python доданий новий код для збереження зображень у форматі JPEG, можна запустити плагін, відкривши зображення в GIMP і скориставшись пунктом меню Image> Resize to max. Ви побачите оновлене вікно введення параметрів, як показано на малюнку 7.
Малюнок 7. Оновлене вікно введення параметрів
Тепер, коли сценарій готовий і випробуваний на окремих зображеннях, можна запустити плагін для всіх зображень в папці.
Запуск обох операцій для всієї папки
У GIMP є неінтерактивний пакетний режим, який дозволяє викликати команди GIMP з командного рядка. Функцію командного рядка можна застосувати для роботи з усіма зображеннями в папці, використовуючи стандартні шаблони.
Наприклад, метод збереження зображення у форматі JPEG можна передати безпосередньо в пакетний режим GIMP, використовуючи команду, наведену в лістингу 8.
Лістинг 8. Використання неінтерактивному пакетного режиму GIMP для збереження зображень
Проте, якщо врахувати розрахунки, необхідні для обмеження за розміром, це стає скрутним. Так що плагін значно спрощує обидві операції, і його можна викликати єдиною командою GIMP.
Тепер, коли плагін працює і зареєстрований в GIMP, у нього є власна команда в базі даних процедур GIMP. Її можна знайти в браузері процедур (Help> Procedure Browser в GIMP) і ввести ім'я, присвоєне плагіну. Наприклад, якщо в методі register ви назвали його python_fu_resize. як показано в лістингу 6, то і в браузері процедур GIMP він буде фігурувати під ім'ям python-fu-resize. Викличте цю команду, як вона представлена в браузері процедур GIMP, з командного рядка за допомогою команди gimp і прапорів -i -b. як показано в лістингу 9.
Лістинг 9. Виклик плагіна в неінтерактивному пакетному режимі GIMP
GIMP відкриває зазначене зображення, виконує команди з заданими параметрами і завершує свою роботу, не вносячи жодних змін в вихідне зображення. За допомогою команди GIMP, виконуваної в неінтерактивному пакетному режимі, можна створити сценарій великомасштабних змін в цілій папці з зображеннями.
Команда, показана в лістингу 10, застосовує новий плагін до всіх зображень Portable Network Graphics (PNG), що містяться в папці.
Лістинг 10. Виклик плагіна в GIMP для всіх зображень в папці
висновок
GIMP - це програма, яка забезпечує широкі можливості по редагуванню графічних файлів на різних платформах. GIMP підтримує плагіни, які можна використовувати для автоматизації найскладніших завдань за допомогою сценаріїв. Так як GIMP підтримує в плагінах сценарії Python, ця мова можна використовувати для розширення GIMP. У неінтерактивному пакетному режимі плагіни можна викликати з командного рядка методом, відповідним для створення сценаріїв.