Доступен предварительный выпуск графического редактора GIMP 3.0
Представлен выпуск графического редактора GIMP 2.99.2, в котором предложена для тестирования функциональность будущей новой стабильной ветки GIMP 3.0. В новой ветке выполнен переход на GTK3, добавлена штатная поддержка Wayland и HiDPI, проведена значительная чистка кодовой базы, предложен новый API для разработки плагинов, реализовано кэширование отрисовки, добавлена поддержка выделения нескольких слоёв (Multi-layer selection) и обеспечено редактирование в исходном цветовом пространстве. Для установки доступен пакет в формате flatpak (org.gimp.GIMP в репозитории flathub-beta) и сборки для Windows.
Ключевые изменения:
- Осуществлён переход на использование библиотеки GTK3 вместо GTK2, существенно модернизировано оформление интерфейса и предложены новые виджеты. Для диалогов применено декорирования окон на стороне клиента (CSD, client-side decorations), при котором заголовок и рамки окна отрисовываются не оконным менеджером, а самим приложением.
Переход на GTK3 также позволил реализовать полноценную поддержку экранов с высокой плотностью пикселей (HiDPI) и решить проблемы при работе на маленьких и больших экранах с высоким разрешением. При отрисовке интерфейса GIMP теперь учитывает системные настройки масштабирования.
- Улучшена поддержка расширенных устройств ввода, таких как планшеты для рисования и световые перья. Добавлена возможность горячего подключения подобных устройств — если в GIMP 2 планшет нужно было обязательно подключать до запуска программы и явно активировать в настройках, то в GIMP 3 всё существенно упрощается и планшет или перо можно подсоединить в любое время и оно сразу станет доступно для рисования. Кроме того, упрощён доступ к расширенным настройкам устройств ввода. Разработчики также экспериментировали с применением экранных жестов, таких как масштабирование щипком, панорамирование и вращение, но данная возможность отмечена как неприоритетная и пока не ясно, появится ли она в GIMP 3.0.
- Реализована поддержка нового формата тем оформления, основанного на CSS, использующего стандартные механизмы тем GTK3 и упрощающего адаптацию интерфейса под свои потребности. Старые темы несовместимы с GIMP 3. Улучшена поддержка символьных наборов пиктограмм, которые теперь автоматически подстраиваются под выставленные цвета переднего плана и фона (при переходе со светлого режима на тёмный больше не нужно вручную менять набор пиктограмм). Улучшено качество тёмного режима оформления, который теперь охватывает и элементы декорирования окон. Предоставлена возможность реализации в одной и то же теме оформления светлого и тёмного вариантов, а также одновременно символьных и цветных пиктограмм.
- Реализована штатная поддержка протокола Wayland. При работе в окружении Wayland пока имеются нерешённые проблемы, такие как утечка памяти, аномалии в GUI и сбои при масштабировании, но они будут устранены к моменту выпуска GIMP 3.0, так как помечены блокирующими релиз. Не все компоненты пока переведены на использование порталов (xdg-desktop-portal), например, возможности по созданию скриншотов уже адаптированы для порталов Freedesktop, GNOME и KDE, но инструмент для определения цвета точки на экране пока работает только в KDE и не поддерживает порталы GNOME и Freedesktop. Портал для доступа к файлам пока не поддерживается и, вероятно, его поддержка не войдёт в состав релиза GIMP 3.0, так как требует редизайна реализации диалога для работы с файлами.
- Добавлена поддержка выделения нескольких слоёв (Multi-layer selection), дающая возможность выбрать сразу несколько слоёв при помощи штатных комбинаций Shift+клик для выделения диапазона слоёв и Ctrl+клик для добавления или исключения из набора отдельных слоёв. Операции в GIMP применяются ко всем выделенным слоям, что позволяет перемещать, группировать, удалять, совмещать и дублировать за раз все выделенные слои. Аналогично инструменты трансформации могут применяться для масштабирования, вращения и изменения содежимого сразу во всех выделенных слоях, а инструмент кадрирования позволяет разом обрезать выбранные слои. При определении цвета пипеткой выбирается сводный для всех выделенных слоёв цвет. Рисование и фильтры GEGL пока действуют только для одного слоя.
- Предложен новый API для разработки плагинов, который несовместим со старыми плагинами, но по заверению разработчиков ничего сложного в портировании уже существующих плагинов нет и на адаптацию типового плагина требуется от 5 до 30 минут времени (документация по портированию будет предоставлена вместе с релизом GIMP 3). Некоторые функции в API объявлены устаревшими, а вместо манипуляции идентификаторами объектов предложено использовать обычные объекты и Object API. Например, GimpImage, GimpItem, GimpDrawable, GimpLayer, GimpVectors, GimpChannel и GimpPDB теперь являются объектами и поддерживают наследование методов.
Для работы с файлами предложен новый API GFile, основанный на GLib/GIO. Новый API унифицирует работу с файлами в разных операционных системах, позволяет не задумываться о кодировке символов в именах файлов и различиях в разделении каталогов. Кроме того, через GFile можно получить доступ ко всем возможностям, предоставляемым модулями GIO (например, обращение к сетевым хранилищам).
Весь API GIMP вынесен через интроспекцию GObject, что позволяет создавать плагины на разных языках программирования. Кроме C/C++ скрипты для расширения возможностей GIMP можно создавать на Python 3, JavaScript, Lua и Vala, при этом предоставляемые для таких плагинов возможности теперь аналогичны возможностям для плагинов на C/C++, а API един для всех языков. В качестве примера подготовлен плагин «Goat exercises», который демонстрирует как реализовать типовую функциональность на разных языках. Для определения плагинов предложен новый API GimpPlugIn, позволяющий создавать плагины через определение подкласса к GimpPlugIn и переопределение методов. Обработка аргументов плагинов стандартизирована при помощи свойств config из GObject.
- Реализован менеджер расширений (Edit › Manage Extensions), позволяющий разработчикам размещать в специальном репозитории расширения к GIMP, такие как плагины и дополнительные наборы кистей, текстур и градиентов, а пользователям устанавливать их одним кликом в интерфейсе. Для распространения различных видов дополнений предложен унифицированный файловый формат.
- Интегрированы наработки проекта «Space invasion», нацеленного на модернизацию кода преобразования цветов в babl, GEGL и GIMP, и переход на использование внутреннего представления цветового профиля, что позволяет выполнять все операции обработки изображений в корректном цветовом пространстве с использованием библиотеки babl.
- Реализована поддержка кэша отрисовки, в котором сохраняются результаты масштабирования, а также манипуляций с цветами, фильтрами и масками. Для ускорения работы в настройки также добавлена возможность определения уровня качества масштабирования (Preferences -› Display -› Zoom Quality). В режиме «fast» применяется более быстрая интерполяция, чем при использовании линейного или квадратичного методов.
- Улучшены правила импортирования. В секции «Color Profile Policy» появился пункт «Convert to Preferred Profile» и по умолчанию преобразование импортируемого изображения производится в соответствии с выбранным профилем (сохранение встроенного профиля оставлено в качестве опции). Кроме того, добавлена новая секция «Metadata Rotation Policy», позволяющая определить поведение при наличии метаданных (запрашивать у пользователя, отбрасывать метаданные без поворота и выполнять поворот в соответствии с метаданными).
- Включено по умолчанию компактное представление кнопок-ползунков (слайдеров), которые обычно используются для задания параметров фильтров и инструментов. Компактный стиль, при котором сокращены верхние и нижние отступы, существенно экономит вертикальное экранное пространство и позволяет вместить в видимую область больше элементов.
- Проведён большой рефакторинг кода, многие части переработаны для упрощения сопровождения.
Источник: http://www.opennet.ru/opennews/art.shtml? num=54048
© OpenNet