Формат файла (.lum)

Lumi использует открытый формат файлов на основе каталогов (.lum), разработанный для обеспечения производительности, надежности и долгосрочной доступности.

Обзор

Файл .lum на самом деле представляет собой каталог, содержащий:

  • Метаданные (слои, режимы наложения, свойства).
  • Буферы слоев (отдельные данные пикселей для каждого слоя).
  • Маски (данные в оттенках серого для масок слоев).
  • История восстановления (инкрементные снимки).

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

Ключевые свойства

Открытый и читаемый

Формат .lum использует метаданные XML и сжатые двоичные буферы. Вы можете проверить структуру, свойства и режимы наложения слоев в виде обычного текста. Нет собственного кодека; данные пикселей хранятся в стандартном формате буфера GEGL.

Дополнительное сохранение

Добавочное сохранение доступно через ФайлСохранить приращение (Ctrl+I). Он создает контрольную точку ручного восстановления внутри проекта без замены обычного ФайлСохранить (Ctrl+S). Полное сохранение по-прежнему обновляет основной проект .lum, а функция Save Increment записывает только измененные слои, необходимые для быстрой проверки.

Ленивая загрузка

Крупные проекты открываются быстро. Пиксели слоя загружаются с диска только тогда, когда:

  • Слой становится видимым.
  • Вы рисуете на слое.
  • Слой экспортирован или скомпонован.

Очень большие проекты (более 500 слоев, несколько гигабайт данных) остаются отзывчивыми. Отложенная загрузка включена по умолчанию, и ее можно включить в меню Правка → Настройки → Производительность → Ресурсы памяти.

Автосохранение

Lumi автоматически сохраняет изменения в отдельном месте кэша (~/.cache/lumi/autosave/) через определенные промежутки времени. Автосохранение не зависит от рабочего файла и не изменяет его. Интервал и расположение кэша настраиваются в меню Правка → Настройки → Производительность.

Доступ

Сохранить и сохранить как

  • ФайлСохранить (Ctrl+S): сохранить в текущий каталог .lum.
  • ФайлСохранить приращение (Ctrl+I): создать контрольную точку инкрементного восстановления для текущего файла .lum.
  • ФайлСохранить как (Shift+Ctrl+S): сохранить в новый файл .lum. Диалоговое окно «Сохранить как» включает параметры сжатия для нового файла проекта.

Несохраненные изменения обозначаются звездочкой (*) в заголовке окна.

Экспорт

  • ФайлЭкспортировать как (Shift+Ctrl+E): экспорт в PNG, JPEG, TIFF или другие форматы.
  • ФайлПерезаписать (Ctrl+E): повторный экспорт в последний экспортированный файл.

Экспорт выравнивает видимые слои и преобразует спектральное цветовое пространство в sRGB.

Импорт

  • ФайлОткрыть (Ctrl+O): загрузить проект .lum.
  • ФайлОткрыть как слои (Shift+Ctrl+O): импортируйте файлы .lum, XCF или PSD как новые слои.
  • ФайлПоследние файлы: быстрый доступ к недавно открытым проектам.

Файлы PSD и XCF при импорте конвертируются в собственный формат Lumi.

Совместимость импорта и экспорта

Поддерживаемые форматы импорта

  • .lum: собственный формат Lumi.
  • .xcf: собственный формат GIMP (слои и основные свойства сохраняются).
  • .psd: формат Photoshop (слои и режимы наложения сохранены).
  • PNG, JPEG, TIFF и т. д.: импорт сведенного изображения.

Поддерживаемые форматы экспорта

  • PNG: без потерь, с альфа-прозрачностью.
  • JPEG: изображение с потерями, сплющенное.
  • TIFF: сжатие без потерь или LZW.
  • XCF: формат совместимости с GIMP. Только экспорт; слои и основные свойства сохраняются.

Восстановление проектаLumi поддерживает автоматическое сохранение в фоновом режиме и дополнительные контрольные точки вручную, доступные из ФайлВосстановить изображение. Подробную информацию см. на странице Восстановление файлов.

Организация

Файл .lum — это каталог с фиксированной структурой:

my-painting.lum/
  ├── metadata.xml                       (image structure, layer tree, properties)
  ├── thumbnail-YYYYMMDD-HHMMSS.png      (last-saved thumbnail)
  ├── drawables/
  │   ├── layer-<name>.geglbuf           (pixel data per layer)
  │   └── mask-<name>.geglbuf            (mask data, shares layer name)
  ├── icc/                               (embedded colour profiles)
  ├── parasites/                         (per-image metadata)
  ├── paths/                             (vector paths as SVG)
  ├── configs/                           (non-destructive filter configurations)
  └── recovery/
      └── primary-01.lum/                (first Save Increment baseline)
          ├── metadata.xml
          ├── drawables/                 (only modified buffers)
        ├── delta-0001.lum/            (Ctrl+I checkpoint)
          └── delta-0002.lum/

Буферы слоев называются в честь слоя (layer-Background.geglbuf), а не нумеруются последовательно. Пробелы в именах слоев сохраняются как символы подчеркивания; групповые слои получают суффикс -GROUP. Маски имеют общее имя слоя (mask-Background.geglbuf).

Каждое recovery/primary-NN.lum/ представляет собой полное базовое сохранение. Последующие нажатия Ctrl+I добавляют подкаталоги delta-NNNN.lum/, содержащие только измененные буферы с момента последней базовой линии, обеспечивая быстрое сохранение контрольной точки независимо от размера проекта.

Автосохранения имеют ту же структуру, но хранятся отдельно в ~/.cache/lumi/autosave/, оставляя рабочий файл нетронутым.

  • Очень большие проекты: проект с более чем 1000 слоями и терабайтами данных больше всего выиграет от отложенной загрузки; однако окончательный экспорт в формат плоского изображения может занять некоторое время.
  • Сетевые диски: сохранение в сетевых каталогах поддерживается, но медленнее, чем в локальном хранилище, из-за задержки ввода-вывода.