Основные нововведения
Пользовательский интерфейс
Благодаря переходу на использование GTK3 были первым же бросающимся в глаза отличием является полностью изменённый и отчасти непривычный внешний вид программы. Появилась возможность использования новых виджетов (вместо попыток подгонки старых) и куда большая возможность в тонкой настройке при помощи декораторов на стороне клиента.
Переход на GTK3 позволил реализовать полноценную поддержку HiDPI мониторов и решает проблему работы программы как на маленьких, так и на больших расширениях дисплеев. Так же теперь программа может использовать системные настройки масштабирования.
Улучшена поддержка разнообразных устройств ввода (в основном это графические планшеты). В GIMP 2 было много проблем с их нативной поддержкой, включая:
- необходимость подключения планшета до запуска программы;
- необходимость явного включения в настройках каждого нового устройства;
- нестабильность программы при горячем отключении устройства ввода.
GIMP 3 теперь поддерживает беспроблемное горячее подключение планшетов и упрошен доступ к тонкой настройке.
Параллельно проводятся работы по улучшению поддержки сенсорных жестов (масштабирование, панорамирование, поворот холста и т.д.). К сожалению данное направление на текущий момент не является приоритетным.
Переход на GTK3 так же означает что теперь поддерживаются темы на основе
CSS, что значительно упрощает создание и кастомизацию. К сожалению это так же означает, что старые темы больше несовместимы с GIMP 3. Улучшена поддержка символьных наборов пиктограмм, которые теперь могут автоматически подстраиваться под цвета выбранной темы. Поскольку тёмная тема стала основной, то было улучшено качество тёмного режима оформления. Также одна и также тема может иметь и светлый, и тёмный вариант исполнения одновременно, а также одновременно цветные и монохромные иконки пиктограмм.
На текущий момент доступна только одна тема - системная, что является вынужденной мерой.
С переходом на GTK3 автоматически появилась штатная поддержка протокола
Wayland. На данный момент все ещё существуют проблемы с утечками памяти, некорректной обработкой масштабирования или графическими артефактами, но они будут устранены до выпуска стабильной ветки. К тому же не все интерфейсы были переведены на использование порталов, а некоторые диалоги не будут адаптированы даже после релиза GIMP 3.0.
Поддержка мультивыделения слоёв
Добавлена поддержка выделения нескольких слоёв одновременно
(!). Теперь можно выделять необходимое количество слоёв групповым (Shift+click) или одиночным выделением (Ctrl+click) и перемешать, группировать, обрезать, масштабировать и деформировать их все одновременно. При выборе цвета пипеткой выбирается сводный для всех выделенных слоёв цвет. Рисование и GEGL фильтры на текущий момент действуют только для одного слоя.
Плагины
В API для плагинов в результате работы была частично сломана совместимость. Часть функций были объявлены устаревшими. В текущий момент ведутся работы по составлению
документации для облегчения портирования несовместимых плагинов. Обновление не должно составить больших проблем.
Так же среди особенностей изменения в API является переход на использование реальных объектов, а не их id, что позволяет по полной использовать типизации объектов и упредить часть ошибок.
Для работы с файлами теперь используется новый
API GFile основанный на
Glib/GIO, что позволяет унифицировать, добавить прозрачность и повысить надёжность работы с файлами. К примеру теперь нет необходимости заботится о кодировке символов для фалов. Кроме того через GFile можно получить доступ ко всем возможностям модулей GIO (обращение к сетевым и удаленным хранилищам).
Некоторые важные изменения были внесены в API для объявления подключаемого модуля плагинов. Теперь это делается через создание подкласса от класса GimpPlugIn и переопределения некоторых методов для назначения и документирования созданных процедур подключаемого модуля.
Весь API программы вынесен через
GObject" target="_blank">-- url -- Introspection, что даст возможность создавать плагины на разных языках программирования.
На текущий момент кроме C и C++ полностью поддерживаются: Python 3, JavaScript, Lua и Vala. Теперь у подобных плагино есть доступ не только к полному API GIMP, но и ко многим более интроспективным API, используемым в качестве зависимостей для GIMP. Например, плагин может иметь доступ ко всем API интерфейсам GLib/GIO, GTK, Pango, Cairo, а также API интерфейсу babl и GEGL (для прямой манипуляций с пикселями и доступа к огромному количеству встроенных функций).
В качестве демонстрационного примера предоставлен плагин Goat exercises, который демонстрирует как реализовать типовую функциональность на разных языках. Этакий аналог Hello World для GIMP.
Расширения
Реализован новый формат файлов - расширения и менеджер расширений (
Edit > Manage Extensions), позволяющий разработчикам размещать в специальном репозитории эти расширения (плагины и дополнительные наборы кистей, текстур и градиентов, а пользователям устанавливать их одним кликом в интерфейсе).
В текущую ветку интегрировано большая часть наработок проекта Space invasion, основной целью которого является переход на нормальную поддержку преобразование цветового пространства с использованием
babl. Частично функционал уже был перенесена в ветку 2.10, но далеко не все и стабильность работы не всегда была приемлимой. Для ветки GIMP 3 планируется перенести все наработки, но на текущий момент ещё остаются нерешенные проблемы.
Остальное
Добавлена поддержка кеша рендеринга, в котором сохраняются результаты масштабирования, цветокоррекция, фильтров и масок, что положительно сказалось на быстродействии программы. Так же появился параметр
Zoom Quality (качество масштабирования), позволяющий добиться компромисса между скоростью работы масштабирования и его качеством при предпросмотре.
Улучшены правила импортирования. Новая опция Convert to Preferred Profile позволяющая по умолчанию преобразование импортируемого изображения производить в соответствии с выбранным профилем, а сохранение встроенного профиля оставлено в качестве опции. Так же добавлена новая секция
Metadata Rotation Policy (политика ротации), позволяющая определить что делать с метаданными если таковые присутствуют.
Компактные (уменьшенный) слайдеры теперь включены по умолчанию и являются единственным возможным вариантом, что позволило оптимизировать занимаемое виджетами пространство. Так же цвет данных слайдеров на текущий момент зависит не от темы программы, а от глобальных настроек операционной системы (по факту основной цвет
GtkProgressBar)
Многие части кода были заметно переработаны для улучшения их работы и облегчения их последующего обслуживания.
На платформе
Linux данный релиз доступен как предварительная сборка в формате Flatpak, так и как исходный код для ручной сборки.
Примечание: для корректной сборки из исходников крайне желательно изменить в файле
configure.ac версию GEGL 0.4.27 на стабильную 0.4.26.
Для платформы
Windows доступны ночные сборки.
К сожалению для платформы
macOS нет официальных подготовленных пакетов.
Скачать готовые сборки и исходный код.