รูปแบบไฟล์ (.lum)

Lumi ใช้รูปแบบไฟล์แบบเปิดตามไดเร็กทอรี (.lum) ที่ออกแบบมาเพื่อประสิทธิภาพ ความน่าเชื่อถือ และการเข้าถึงในระยะยาว

ภาพรวม

จริงๆ แล้วไฟล์ .lum เป็นไดเร็กทอรีที่มี:

  • ข้อมูลเมตา (เลเยอร์ โหมดการผสม คุณสมบัติ)
  • บัฟเฟอร์เลเยอร์ (ข้อมูลพิกเซลส่วนบุคคลสำหรับแต่ละเลเยอร์)
  • มาสก์ (ข้อมูลระดับสีเทาสำหรับเลเยอร์มาสก์)
  • ประวัติการกู้คืน (สแนปชอตส่วนเพิ่ม)

โครงสร้างนี้ช่วยให้สามารถบันทึกได้อย่างรวดเร็ว โหลดไฟล์ขนาดใหญ่แบบ Lazy Loading และกู้คืนงานได้แม้หลังจากเกิดข้อขัดข้อง

คุณสมบัติที่สำคัญ

เปิดและอ่านได้

รูปแบบ .lum ใช้ข้อมูลเมตา XML และบัฟเฟอร์ไบนารีที่บีบอัด คุณสามารถตรวจสอบโครงสร้างเลเยอร์ คุณสมบัติ และโหมดการผสมในรูปแบบข้อความธรรมดาได้ ไม่มีตัวแปลงสัญญาณที่เป็นกรรมสิทธิ์ ข้อมูลพิกเซลถูกจัดเก็บในรูปแบบบัฟเฟอร์ GEGL มาตรฐาน

การออมที่เพิ่มขึ้น

การบันทึกส่วนเพิ่มสามารถทำได้ผ่าน ไฟล์บันทึกส่วนเพิ่ม (Ctrl+I) สร้างจุดตรวจสอบการกู้คืนด้วยตนเองภายในโปรเจ็กต์โดยไม่ต้องแทนที่ ไฟล์ ปกติ → บันทึก (Ctrl+S) การบันทึกแบบเต็มยังคงอัปเดตโปรเจ็กต์ .lum หลัก ในขณะที่ Save Increation จะเขียนเฉพาะเลเยอร์ที่แก้ไขซึ่งจำเป็นสำหรับจุดตรวจสอบที่รวดเร็ว

ขี้เกียจโหลด

โครงการขนาดใหญ่เปิดเร็ว เลเยอร์พิกเซลจะถูกโหลดจากดิสก์เฉพาะเมื่อ:

  • ทำให้ชั้นมองเห็นได้
  • คุณทาสีบนเลเยอร์
  • เลเยอร์ถูกส่งออกหรือรวมเข้าด้วยกัน

โปรเจ็กต์ขนาดใหญ่มาก (500+ เลเยอร์ ข้อมูลหลายกิกะไบต์) ยังคงตอบสนองได้ดี การโหลดแบบ Lazy Loading จะเปิดใช้งานตามค่าเริ่มต้น และสามารถสลับได้ใน แก้ไข → การตั้งค่า → ประสิทธิภาพ → ทรัพยากรหน่วยความจำ

บันทึกอัตโนมัติ

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: Lossless หรือบีบอัด 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/ โดยไม่เปลี่ยนแปลงไฟล์การทำงาน

  • โปรเจ็กต์ขนาดใหญ่มาก: โปรเจ็กต์ที่มีข้อมูลมากกว่า 1,000 เลเยอร์และเทราไบต์จะได้รับประโยชน์สูงสุดจากการโหลดแบบ Lazy Loading อย่างไรก็ตาม การส่งออกขั้นสุดท้ายเป็นรูปแบบภาพแบนอาจต้องใช้เวลา
  • ไดรฟ์เครือข่าย: รองรับการบันทึกไปยังไดเร็กทอรีที่ติดตั้งบนเครือข่าย แต่ช้ากว่าที่จัดเก็บในเครื่องเนื่องจากเวลาแฝง I/O