Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Використання мови Python для написання GIMP-плагінів

  1. огляд GIMP
  2. Огляд мови сценаріїв Python
  3. Лістинг 1. Перевірка правильності установки Python
  4. Малюнок 1. Створення нового проекту з плагіном PyDev для Eclipse
  5. Малюнок 2. Додавання каталогу модулів GIMP-Python до проекту в Eclipse
  6. Реєстрація сценарію
  7. Лістинг 2. Елементарний сценарій Python, який виводить "Hello, world!"
  8. Лістинг 3. Реєстрація плагіна в GIMP
  9. Таблиця 1. Параметри і приклади методу register ()
  10. Лістинг 4. Отримання довідки з використанням консолі Python
  11. Малюнок 3. Новий пункт меню нового плагіна
  12. Сценарій зміни розміру
  13. Лістинг 5. Додавання коду в метод plugin_main
  14. Малюнок 4. Перегляд методу gimp-image-scale в браузері процедур
  15. Малюнок 5. Вхідні параметри плагіна
  16. Сценарій перетворення зображень
  17. Лістинг 6. Додавання коду для збереження JPEG-копії вихідного зображення
  18. Малюнок 6. Пошук методу для збереження файлів JPEG в браузері процедур
  19. Лістинг 7. Отримання довідки по константам gimpfu
  20. Запуск відредагованого сценарію плагіна
  21. Малюнок 7. Оновлене вікно введення параметрів
  22. Запуск обох операцій для всієї папки
  23. Лістинг 8. Використання неінтерактивному пакетного режиму GIMP для збереження зображень
  24. Лістинг 9. Виклик плагіна в неінтерактивному пакетному режимі GIMP
  25. Лістинг 10. Виклик плагіна в GIMP для всіх зображень в папці
  26. висновок
  27. Ресурси для скачування

Наша взаимовыгодная связь https://banwar.org/

Розширення GIMP для автоматичного вирішення завдань

Ця стаття присвячена використанню GIMP-Python, набору Python-модулів, які дозволяють створювати програми на мові Python для автоматизації команд GNU Image Manipulation Program (GIMP). Ці Python-модулі являють собою оболонку навколо бібліотек libgimp. GIMP-Python відрізняється від розширень Script-Fu. У Script-Fu плагін використовується для виконання сценаріїв. В GIMP-Python центральне місце займає сценарій Python, який і виконує всю роботу. Примірники сценаріїв GIMP-Python можна створювати всередині самого GIMP або використовувати пакетний режим GIMP для запуску цих сценаріїв з командного рядка.

Ця стаття присвячена написанню коду Python, що дозволяє автоматизувати дві різні завдання в GIMP: зміна розміру зображень і їх збереження в різних форматах.

GIMP і Python можна встановити і використовувати на багатьох платформах, включаючи Linux®, Mac OS X® і Microsoft® Windows®. Крос-платформний характер як GIMP, так і Python означає можливість створювати складні плагіни для GIMP з використанням Python і запускати їх на різних платформах.

огляд GIMP

GIMP - це програма з відкритим вихідним кодом для роботи з зображеннями, яку багато хто використовує в якості повноцінної заміни деяких комерційних пропозицій. GIMP управляє складними об'єктами, такими як шари і шляхи. GIMP підтримує різні формати зображення і містить досить складні фільтри. GIMP користується потужною підтримкою і участю спільноти, так що знайти відомості про те, як використовувати або розширити GIMP, як правило, неважко.

В розділі ресурси наведено посилання для завантаження і установки GIMP на комп'ютер.

Огляд мови сценаріїв Python

Python - це об'єктно-орієнтована мова сценаріїв, який дозволяє писати код, який працює на різних платформах. Python портований на обидві віртуальні машини .NET і Java ™, так що існує маса різних способів його виконання. Про те, як встановити 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

$ Python --version Python 2.6.6

Встановивши інтерпретатор Python, можна создваать файли Python в будь-якому текстовому редакторі і запускати їх в інтерпретаторі. Також можна використовувати плагін PyDev для Eclipse, який забезпечує підсвічування синтаксису і деякі інші корисні функції, такі як виявлення синтаксичних помилок. Інший варіант - використання консолі Python безпосередньо в Eclipse; це зручно для пошуку довідкових матеріалів.

У нових версіях GIMP модулі GIMP-Python вже повинні бути встановлені. Щоб перевірити це, відкрийте GIMP і подивіться, чи присутній в меню Filters пункт Python-Fu. Якщо так, можна приступати до створення сценаріїв. В іншому випадку встановіть Python-розширення для GIMP, слідуючи по посиланнях в розділі ресурси .

Якщо потрібен плагін PyDev для Eclipse, виконайте наступні дії.

  1. Встановіть плагін PyDev, вибравши пункт меню Help> Install New Software.
  2. Як сайту оновлень використовуйте http://pydev.org/updates (див. Розділ ресурси ).
  3. Виконайте інші інструкції по установці і перезавантажте Eclipse.
  4. Після перезапуску Eclipse виберіть File> New> Project, щоб створити новий проект.
  5. Виберіть пункт PyDev \ PyDev Project і натисніть кнопку Next.
  6. Введіть ім'я проекту (наприклад, MyPythonGimpPlugins).
  7. Зніміть прапорець Use default (використовувати параметри за замовчуванням) і введіть розташування свого каталогу GIMP для модулів Python, як показано на малюнку 1 .
    Малюнок 1. Створення нового проекту з плагіном PyDev для Eclipse
    Розширення GIMP для автоматичного вирішення завдань   Ця стаття присвячена використанню GIMP-Python, набору Python-модулів, які дозволяють створювати програми на мові Python для автоматизації команд GNU Image Manipulation Program (GIMP)
  8. Натисніть на посилання, щоб налаштувати інтерпретатор. Якщо Python встановлено правильно і по зазначеному шляху, повинна працювати кнопка Auto Config.

Не забудьте додати до свого проекту папку з модулями 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!"

#! / Usr / bin / python print "Hello, world!"

Сценарій Python для GIMP потрібно зареєструвати, щоб помістити плагін в одне з меню GIMP. У лістингу 3 наведено мінімальний код, необхідний для реєстрації сценарію в GIMP і виведення "Hello, World!" на консоль при його виклику.

Лістинг 3. Реєстрація плагіна в GIMP

#! / Usr / bin / python from gimpfu import * def plugin_main (timg, tdrawable): print "Hello, world!" register ( "python_fu_resize", "Saves the image at a maximum width and height", "Saves the image at a maximum width and height", "Nathan A. Good", "Nathan A. Good", "2010", "< Image> / Image / Resize to max ... "," RGB *, GRAY * ", [], [], plugin_main) main ()

Метод register () передає GIMP інформацію про вашому плагін.

Метод register () має кілька параметрів, які говорять GIMP, як відображати меню для плагіна і який метод Python викликати при запуску плагіна з меню. У таблиці 1 наведені параметри методу register ().

Таблиця 1. Параметри і приклади методу register ()

Параметр Приклад Опис proc_name python_fu_resize Ім'я команди, яку можна викликати з командного рядка або сценарію blurb можна зберегти зображення з максимальною шириною і висотою Інформація про плагін, який відображається в браузері процедур help можна зберегти зображення з максимальною шириною і висотою Довідка по плагіну author Nathan A. Good Автор плагіна copyright Nathan A. Good Володар авторських прав на плагін (зазвичай той же, що і автор) date 2010 Дата авторського права label <Image> / Image / Resize to max ... Метка, використовувана для плагіна в меню imagetypes RGB *, GRAY * Типи зображень, з якими раб отает плагін params [] Параметри методу плагіна results [] Результати методу плагіна function plugin_main Ім'я методу, що викликається в програмі Python

Щоб отримати найактуальнішу інформацію про параметрах методу register, відкрийте консоль Python-Fu (натисніть Filters> Python-Fu> Console) і введіть команди, показані в лістингу 4.

Лістинг 4. Отримання довідки з використанням консолі Python

import gimpfu help (gimfu.register)

Після введення значень в метод register збережіть свій сценарій. Переконайтеся, що він виконується і знаходиться в папці .gimp2-6 / plug-ins.

Зберігши сценарій, запустіть GIMP з командного рядка за допомогою команди gimp. Це дозволить вам побачити будь-яку інформацію, виведену вашим плагіном, в тому числі вихідна повідомлення. Крім того, якщо в плагіні є помилки, ви їх побачите.

Запустивши GIMP, перейдіть в меню Image, де з'явиться новий пункт меню Resize to max, як показано на малюнку 3.

Малюнок 3. Новий пункт меню нового плагіна

Тепер, коли ваш плагін правильно зареєстрований в GIMP, і можна вибрати пункт меню свого плагіна, ви готові приступити до додавання коду Python для зміни розміру зображення.

Сценарій зміни розміру

Маючи плагін Python в GIMP, можна додати реальний код в метод plugin_main всередині коду плагіна.

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

Лістинг 5. Додавання коду в метод plugin_main

def plugin_main (timg, tdrawable, maxh = 500, maxw = 500): currentWidth = tdrawable.width currentHeight = tdrawable.height newWidth = currentWidth newHeight = currentHeight if (maxw <newWidth): newWidth = maxw newHeight = (float (currentHeight) / (float (currentWidth) / newWidth)) if (maxh <newHeight): newHeight = maxh newWidth = (float (currentWidth) / (float (currentHeight) / newHeight)) pdb.gimp_image_scale (timg, newWidth, newHeight)

Щоб змінити розмір зображення, код Python просто викликає метод pdb.gimp_scale_image, виконавши деякі елементарні обчислення, щоб визначити необхідні значення розмірів масштабується зображення. Оскільки значення, введені в поле, це максимальні значення, сценарій повинен перевірити як ширину, так і висоту поточного зображення, щоб визначити, чи потрібно обмежити його розміри. Якщо який-небудь розмір зображення більше максимального, плагін обмежує його до максимального розміру, а потім обчислює інший вимір.

Про інших методах, які можна викликати в сценарії Python, см. В Довідці GIMP Help> Procedure Browser. На малюнку 4 показаний браузер процедур методу pdb.gimp_image_scale.

Малюнок 4. Перегляд методу gimp-image-scale в браузері процедур

Запуск сценарію плагіна зміни розміру

Додавши код зміни розміру, відкрийте зображення в GIMP. Виберіть свій новий пункт меню Image> Resize to max. Сценарій запитає у вас розміри, як показано на малюнку 5.

Малюнок 5. Вхідні параметри плагіна

При натисканні кнопки ОК виконується метод plugin_main, і ваш сценарій змінює розміри зображення.

Сценарій перетворення зображень

Тепер, коли у вас є плагін для зміни розмірів зображення, сценарій Python можна змінити так, щоб він зберігав зображення в іншому форматі. Це дозволить зберегти вихідне зображення у вигляді файлу JPEG і змінити його розмір відповідно до певними обмеженнями.

Доповнення до сценарію показані в лістингу 6.

Лістинг 6. Додавання коду для збереження JPEG-копії вихідного зображення

#! / Usr / bin / python from gimpfu import * def plugin_main (timg, tdrawable, maxh = 500, maxw = 500, savecopy = TRUE): currentWidth = tdrawable.width currentHeight = tdrawable.height newWidth = currentWidth newHeight = currentHeight if ( maxw> newWidth): newWidth = maxw newHeight = (float (currentHeight) / (float (currentWidth) / newWidth)) if (maxh> newHeight): newHeight = maxh newWidth = (float (currentWidth) / (float (currentHeight) / newHeight )) pdb.gimp_image_scale (timg, newWidth, newHeight) if savecopy: pdb.file_jpeg_save (timg, tdrawable, timg.name + ". jpg", timg.name + ". jpg", 0.9, 0, 0, 0, "", 0, 0, 0, 0) register ( "python_fu_resize", "Saves the image at a maximum width and height", "Saves the image at a maximum width and height", "Nathan A. Good", "Nathan A. Good "," 2010 "," <Image> / Image / Resize to max ... "," RGB *, GRAY * ", [(PF_INT," max_width "," Maximum Width ", 500), (PF_INT," max_height "," Maximum Height ", 500), (PF_BOOL," copy "," Make a JPEG copy ", TRUE),], [], plugin_main) main ()

Ім'я потрібного методу можна отримати з бази даних процедур (змінна PDB) за допомогою пункту меню Help> Procedure Browser, як показано на малюнку 6.

Малюнок 6. Пошук методу для збереження файлів JPEG в браузері процедур

Константи, що використовуються для типів вхідних параметрів, беруться з бібліотеки gimpfu. Список доступних констант можна отримати, ввівши команди, показані в лістингу 7, з консолі Python в GIMP або Eclipse.

Лістинг 7. Отримання довідки по константам gimpfu

import gimpfu help (gimpfu)

Константи починаються з PF_ і визначають типи, які можна використовувати для елементів управління форми введення.

Запуск відредагованого сценарію плагіна

Після того як в сценарій Python доданий новий код для збереження зображень у форматі JPEG, можна запустити плагін, відкривши зображення в GIMP і скориставшись пунктом меню Image> Resize to max. Ви побачите оновлене вікно введення параметрів, як показано на малюнку 7.

Малюнок 7. Оновлене вікно введення параметрів

Тепер, коли сценарій готовий і випробуваний на окремих зображеннях, можна запустити плагін для всіх зображень в папці.

Запуск обох операцій для всієї папки

У GIMP є неінтерактивний пакетний режим, який дозволяє викликати команди GIMP з командного рядка. Функцію командного рядка можна застосувати для роботи з усіма зображеннями в папці, використовуючи стандартні шаблони.

Наприклад, метод збереження зображення у форматі JPEG можна передати безпосередньо в пакетний режим GIMP, використовуючи команду, наведену в лістингу 8.

Лістинг 8. Використання неінтерактивному пакетного режиму GIMP для збереження зображень

gimp -i -b '(file-jpeg-save "Menu_006.png" 200 200 TRUE)' -b '(gimp-quit 0)'

Проте, якщо врахувати розрахунки, необхідні для обмеження за розміром, це стає скрутним. Так що плагін значно спрощує обидві операції, і його можна викликати єдиною командою GIMP.

Тепер, коли плагін працює і зареєстрований в GIMP, у нього є власна команда в базі даних процедур GIMP. Її можна знайти в браузері процедур (Help> Procedure Browser в GIMP) і ввести ім'я, присвоєне плагіну. Наприклад, якщо в методі register ви назвали його python_fu_resize, як показано в лістингу 6, то і в браузері процедур GIMP він буде фігурувати під ім'ям python-fu-resize. Викличте цю команду, як вона представлена ​​в браузері процедур GIMP, з командного рядка за допомогою команди gimp і прапорів -i -b, як показано в лістингу 9 .

Лістинг 9. Виклик плагіна в неінтерактивному пакетному режимі GIMP

gimp -i -b '(python-fu-resize "myimage.png" 200 200 TRUE)' -b '(gimp-quit 0)'

GIMP відкриває зазначене зображення, виконує команди з заданими параметрами і завершує свою роботу, не вносячи жодних змін в вихідне зображення. За допомогою команди GIMP, виконуваної в неінтерактивному пакетному режимі, можна створити сценарій великомасштабних змін в цілій папці з зображеннями.

Команда, показана в лістингу 10, застосовує новий плагін до всіх зображень Portable Network Graphics (PNG), що містяться в папці.

Лістинг 10. Виклик плагіна в GIMP для всіх зображень в папці

gimp -i -b '(python-fu-resize "* .png" 200 200 TRUE)' -b '(gimp-quit 0)'

висновок

Python - це об'єктно-орієнтована мова сценаріїв, який дозволяє писати сценарії, що виконуються на різних платформах. У мови сценаріїв Python велика інструментальна підтримка - від простої підсвічування синтаксису в текстових редакторах до плагінів Eclipse.

GIMP - це програма, яка забезпечує широкі можливості по редагуванню графічних файлів на різних платформах. GIMP підтримує плагіни, які можна використовувати для автоматизації найскладніших завдань за допомогою сценаріїв. Так як GIMP підтримує в плагінах сценарії Python, ця мова можна використовувати для розширення GIMP. У неінтерактивному пакетному режимі плагіни можна викликати з командного рядка методом, відповідним для створення сценаріїв.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: