파일 형식(.lum)
Lumi는 성능, 안정성 및 장기적인 접근성을 위해 설계된 개방형 디렉터리 기반 파일 형식(.lum)을 사용합니다.
개요
.lum 파일은 실제로 다음을 포함하는 디렉터리입니다.
- 메타데이터(레이어, 혼합 모드, 속성).
- 레이어 버퍼(각 레이어의 개별 픽셀 데이터).
- 마스크(레이어 마스크의 회색조 데이터).
- 복구 기록(증분 스냅샷).
이러한 구조를 통해 빠른 저장, 대용량 파일의 지연 로딩, 충돌 후에도 작업 복구가 가능합니다.
주요 속성
개방형 및 읽기 가능
.lum 형식은 XML 메타데이터와 압축된 바이너리 버퍼를 사용합니다. 일반 텍스트의 레이어 구조, 속성 및 혼합 모드를 검사할 수 있습니다. 독점 코덱이 없습니다. 픽셀 데이터는 표준 GEGL 버퍼 형식으로 저장됩니다.
증분 저장
증분 저장은 파일 → 증분 저장(Ctrl+I)을 통해 가능합니다. 일반적인 파일 → 저장(Ctrl+S)을 바꾸지 않고 프로젝트 내부에 수동 복구 체크포인트를 생성합니다. 전체 저장은 여전히 기본 .lum 프로젝트를 업데이트하는 반면, 저장 증분은 빠른 체크포인트에 필요한 수정된 레이어만 작성합니다.
지연 로딩
대규모 프로젝트가 빠르게 시작됩니다. 레이어 픽셀은 다음과 같은 경우에만 디스크에서 로드됩니다.
- 레이어가 표시됩니다.
- 레이어에 칠합니다.
- 레이어가 내보내지거나 합성됩니다.
매우 큰 프로젝트(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: 김프 기본 형식(레이어 및 기본 속성이 유지됨).
- .psd: Photoshop 형식(레이어 및 혼합 모드 유지).
- PNG, JPEG, TIFF 등: 병합된 이미지 가져오기.
지원되는 내보내기 형식
- PNG: 무손실, 알파 투명도.
- JPEG: 손실이 있고 평면화되었습니다.
- TIFF: 무손실 또는 LZW 압축.
- XCF: 김프 호환 형식입니다. 수출 전용; 레이어와 기본 속성은 그대로 유지됩니다.
프로젝트 복구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개 이상의 레이어와 테라바이트의 데이터가 포함된 프로젝트는 지연 로딩의 이점을 가장 많이 얻습니다. 그러나 일반 이미지 형식으로 최종 내보내는 데는 시간이 걸릴 수 있습니다.
- 네트워크 드라이브: 네트워크 마운트 디렉터리에 저장하는 것은 지원되지만 I/O 대기 시간으로 인해 로컬 스토리지보다 느립니다.