Разработка

Вводная информация

Графический редактор GIMP написан на языке C.  Для построения пользовательского интерфейса программа использует библиотеки GTK+ и Cairo.

В современной версии GIMP интерфейс полностью отделён от внутренней логики, а обработка изображений выполняется через библиотеку GEGL, использующую ациклические графы. Для конвертирования пикселов между форматами представления применяется библиотека-словарь babl.

Для начинающих разработчиков есть несколько справочных ресурсов:

Устаревшая справка по API доступна по адресу developer.gimp.org.

Если вы заинтересованы в портировании фильтров GIMP на GEGL, вам помогут эти страницы:

Самые актуальные задачи

GIMP — большой проект, в котором всегда найдётся место новым участникам и свежим, перспективным идеям. Поскольку реализация некоторых важных функций блокируется незавершённостью перехода на новый движок обработки графики, решение некоторых задач мы считаем более приоритетным:

  • порт фильтров GIMP на GEGL;
  • ускорение работы GEGL;
  • порт операций GEGL на OpenCL;
  • разработка нового внутреннего формата файлов.

Пусть этот список не смущает вас: мы с интересом рассмотрим новшества, реализующие впечатляющие научные исследования, особенно в области манипуляции изображениями и обработки фотографий. Список наиболее актуальных задач приведён в вики проекта.

Работа над эргономикой

С 2006 года эргономикой GIMP занимается Петер Сиккинг, руководитель немецкой компании man+machine works. Работа над юзабилити документируется в отдельной англоязычной вики.

Актуальные проекты:

Кроме того, студенты Петера провели несколько исследований, на основе которых тоже можно доработать интерфейс GIMP:

Если вы готовы взяться за те или иные перечисленные выше задачи, рекомендуем подключиться к одному из основных каналов общения в проекте и сообщить о своей готовности поучаствовать.

Работа с командой

Основным каналом общения разработчиков является IRC: #gimp на irc.gimp.net. Существенная доля программистов живёт в Европе, однако есть активные участники из США и Новой Зеландии, поэтому просим с пониманием отнестись к тому, что получить ответ можно не сразу.

Кроме того, действуют два списка рассылки:

  • GIMP developer, предназначен для обсуждения разработки GIMP.
  • GEGL developer, в нём обсуждается разработка библиотек GEGL и babl.