Слои, маски, каналы, контуры: как устроен XCF внутри
Снаружи .xcf — просто иконка файла. Внутри это аккуратно собранный «торт» из данных: стопка прозрачных слоёв, чёрно-белые маски, каналы цвета и прозрачности, векторные контуры и тысячи маленьких плиток. Разберём формат GIMP по кирпичикам — без жаргона и с пояснением каждого термина.
XCF как многослойный «торт» данных
Если вы уже читали наш разбор, что такое XCF, то знаете главное: это «проект» бесплатного редактора GIMP, а не готовая картинка. Здесь мы заглянем глубже и разберём, из чего именно собран этот проект внутри. Спойлер: XCF хранит не одно изображение, а целый набор объектов, сложенных слоями, как торт.
Файл начинается с короткой служебной «подписи» — слов gimp xcf, по которым программа сразу узнаёт свой формат. Сразу за ней записаны номер версии, размеры холста, тип изображения и список «указателей» — ссылок на то, где в файле лежат слои и каналы. По сути это оглавление, по которому GIMP находит все части проекта. Разберём эти части по очереди.
Коротко
XCF — это контейнер. Внутри лежат слои, маски, каналы и контуры по отдельности, плюс служебные данные. Готовое изображение получается, когда GIMP «складывает» все слои сверху вниз — но в файле они остаются раздельными.
Слои: стопка прозрачных листов
Слой — это основа основ. Представьте стопку прозрачных пластиковых листов, лежащих друг на друге. На одном листе — фон, на другом — персонаж, на третьем — текст. Смотрите сверху — и видите их как единую картинку. Это и есть слои: изображение собирается из них композицией сверху вниз.
Каждый слой в XCF хранит не только пиксели, но и свои настройки:
- Положение (смещение) — где лист лежит относительно холста. Слой можно двигать, и он не обязан совпадать по размеру со всем изображением.
- Непрозрачность — от 0 до 100%. Полупрозрачный слой просвечивает, как калька.
- Видимость — «глазик» рядом со слоем; выключенный слой остаётся в файле, но не участвует в картинке.
- Режим наложения — правило, по которому слой смешивается с тем, что под ним. «Нормальный» просто перекрывает; «Умножение» затемняет; «Экран» осветляет; «Перекрытие» усиливает контраст.
- Альфа-канал — необязательная прозрачность самого слоя (о ней ниже).
Именно поэтому в GIMP так удобно править: подвинуть тень, приглушить фон, отключить надпись — всё это меняет один слой, не трогая остальные. А XCF честно запоминает каждую такую настройку.
Маски слоёв: неразрушающее редактирование
Маска — пожалуй, самый недооценённый инструмент. Это чёрно-белая «плёнка», прикреплённая к слою, которая управляет его видимостью по точкам: белое = видно полностью, чёрное = спрятано, серое = частично прозрачно. Маска не трогает сами пиксели — она лишь решает, какие из них показывать.
В этом вся прелесть. Если стереть часть слоя ластиком, пиксели исчезнут навсегда. А если закрасить то же место чёрным на маске — они спрячутся, но останутся целыми. Передумали? Закрасьте маску обратно белым, и пиксели вернутся. Это и называют неразрушающим редактированием: вы меняете картинку, ничего в ней не разрушая.
Добавьте маску к слою
GIMP создаёт рядом со слоем чёрно-белую «плёнку». По умолчанию вся белая — значит, слой виден полностью.
Рисуйте по маске чёрным
Берёте мягкую кисть и закрашиваете чёрным те участки, которые нужно спрятать. Пиксели слоя при этом целы — скрывается лишь их показ.
Возвращайте белым
Передумали? Закрасьте то же место белым — слой снова проявится. Серый даст плавный полупрозрачный переход.
Маски незаменимы для плавных переходов, мягкого совмещения фотографий и аккуратного вырезания объектов. И всё это XCF сохраняет вместе со слоем — открыв проект завтра, вы продолжите ровно с того места, где остановились.
Каналы и альфа: где живёт прозрачность
Любое цветное изображение собрано из трёх каналов — красного, зелёного и синего (R, G, B). Канал — это, по сути, чёрно-белая карта яркости одного цвета: насколько в каждой точке много красного, зелёного, синего. Смешайте три карты — получите полноцветную картинку. XCF хранит эти каналы внутри слоёв.
Но есть и четвёртый, особенный канал — альфа. Он отвечает не за цвет, а за прозрачность: для каждого пикселя альфа говорит, насколько он непрозрачен — от «совсем не видно» до «плотный цвет». Без альфа-канала картинка всегда прямоугольная и без дырок. С ним появляются мягкие края, тени и «вырезанные» объекты на прозрачном фоне. Именно альфу сохраняет PNG, когда вы экспортируете проект.
Сверх стандартных каналов XCF умеет хранить пользовательские каналы. Например, вы выделили сложный объект — и сохранили это выделение как отдельный канал, чтобы вернуться к нему позже. Это удобный способ не терять кропотливую работу по обводке.
Совет
Если объект на картинке должен быть «вырезан» с прозрачным фоном, держите в проекте альфа-канал и экспортируйте в PNG, а не в JPG. JPG не умеет прозрачность и зальёт фон сплошным цветом.
Контуры: векторные кривые внутри растрового файла
Здесь XCF делает неожиданный ход. Сам по себе формат растровый — то есть состоит из пикселей. Но контуры (пути) он хранит как векторы: не пиксели, а математику.
Контур — это кривая Безье: набор опорных точек, у каждой из которых есть «рычажки» (направляющие), задающие изгиб линии между точками. Звучит сложно, но идея простая: вместо того чтобы запоминать тысячи закрашенных точек, файл хранит несколько координат и формулу кривой. Отсюда два следствия:
- Независимость от разрешения. Контур можно увеличить хоть до плаката — он останется идеально гладким, потому что это формула, а не пиксели.
- Точность и гибкость. Контуром удобно обводить сложные объекты. Потом его можно превратить в выделение или «обвести» кистью, получив ровную линию.
То есть в одном файле уживаются два мира: растровые пиксели слоёв и векторные кривые контуров. XCF аккуратно хранит и то, и другое.
Плитки 64×64 и сжатие: инженерное сердце XCF
А теперь — самое инженерное. Как GIMP хранит огромное изображение, не «съедая» всю память? Ответ: он не держит слой одним гигантским куском. Вместо этого каждый слой и канал нарезаются на сетку маленьких квадратов — плиток размером 64×64 пикселя.
Каждая плитка живёт и сжимается отдельно. Базовый алгоритм сжатия — RLE (кодирование длин серий): простой и быстрый способ записать подряд идущие одинаковые пиксели одним числом. Начиная с GIMP 2.10 (2018) доступно более плотное сжатие zlib — тот же движок, что в обычных ZIP-архивах. И всё это без потерь: пиксели сохраняются точь-в-точь.
Зачем такая морока? Плитки дают две большие выгоды. Во-первых, экономия памяти: при работе можно подгружать только видимые плитки, а не всё полотно. Во-вторых, скорость правок: когда вы провели кистью, GIMP пересохраняет лишь те несколько плиток, которых коснулась кисть, а не всё изображение целиком.
Кстати, о точности. XCF поддерживает разную «глубину» цвета: 8, 16 и 32 бита на канал, причём 32-битный режим хранит цвет особенно точно — это даёт максимально плавные переходы оттенков (градиенты) без видимых полос. Работать формат умеет в режимах RGB, оттенков серого и индексированном (палитра), и при этом встраивает так называемый цветовой профиль (ICC) — это «паспорт цвета», благодаря которому оттенки выглядят одинаково на разных экранах.
Что ещё помнит XCF
Помимо слоёв, масок, каналов и контуров, XCF бережно хранит мелочи, из которых складывается ваше рабочее окружение:
- Направляющие и сетку — те самые синие линии, по которым вы выравнивали элементы. Они остаются на месте.
- Активное выделение — если вы что-то выделили и закрыли файл, при открытии выделение будет на месте.
- «Паразиты» (parasites) — необычное название для произвольных служебных метаданных. GIMP и плагины цепляют их к изображению или слою: например, последние настройки экспорта в JPEG или содержимое текстового слоя.
- Цветовой профиль — встроенный ICC, чтобы цвета не «уплыли».
Благодаря этому открытый заново проект выглядит ровно так, как вы его оставили — с выделением, направляющими и всеми настройками. Это полноценная «сохранёнка». Кстати, именно богатство этой структуры отличает XCF от формата Photoshop — мы сравнивали их в статье XCF против PSD.
Как это превращается в готовую картинку
Вся эта стройная структура — слои, маски, каналы, контуры — нужна, пока вы работаете. Но именно она делает XCF «личным» форматом GIMP: другие программы его толком не открывают, и для публикации он не годится. Чтобы показать результат, проект нужно свести (flatten).
Сведение — это момент, когда GIMP берёт все видимые слои, применяет их маски, режимы наложения и эффекты и «складывает» в одну плоскую картинку. Лучший формат для этого — PNG: он без потерь и, главное, сохраняет тот самый альфа-канал, то есть прозрачность. Все «этажи» вашего торта спекаются в единое изображение, которое откроется где угодно.
Сведите свой XCF в PNG
Бесплатный конвертер FormatZ соберёт все слои, маски и эффекты проекта в одну аккуратную картинку с прозрачностью — прямо в браузере, без установки GIMP.
Конвертировать XCF в PNGНужно наоборот — превратить картинку обратно в редактируемый проект? Для этого есть конвертация PNG в XCF. А все доступные преобразования собраны на странице всех форматов. Если хотите начать с азов, вернитесь к статье что такое XCF простыми словами.
Частые вопросы о структуре XCF
Читайте также
Основы форматовЧто такое XCF простыми словами
Зачем нужен проектный файл GIMP и чем он отличается от картинки.
СравнениеXCF против PSD: GIMP или Photoshop
Чем отличаются проектные форматы и что выбрать под задачу.
ДизайнGIMP и XCF: рабочий процесс дизайнера
Как выстроить работу со слоями и экспортом без потери качества.