Das Projektformat .focale
ZIP-Aufbau, Manifestversion 1 und exakte Rasterdaten.
Am 5. Oktober 2026 mit dem Anwendungscode abgeglichen. Focale wird aktiv entwickelt; Befehle und Pakete können je Build abweichen.
Archivaufbau
Ein Standard-ZIP ohne Verschlüsselung oder Verschleierung. manifest.json ist Pflicht; preview.png ist optional mit maximal 512 Pixeln an der längsten Seite.
Raster, Masken, Kanäle, ICC-Profile, platzierte Quellen, Unterdokumente und Muster haben eigene Verzeichnisse. Namen kodieren undurchsichtige Kennungen statt Pfade.
project.focale
├── manifest.json
├── preview.png
├── profiles/document.icc
├── profiles/raster/….icc
├── raster/….png | .fcraster | .fctiles
├── masks/….png | .fctiles
├── channels/….png | .fctiles
├── objects/raster/N.fcraster
├── placed/….bin
├── placed_documents/….focale
└── patterns/….fptileVersioniertes Manifest
Der Wurzelbezeichner ist focale; der aktuelle Schreiber nutzt Version 1. Neuere unbekannte Versionen werden abgelehnt.
Es enthält Geometrie, Farbe, Tiefe, Profile und Ebenenbaum sowie optionale Pfade, Hilfslinien, Kanäle, Slices, Kompositionen, Animation und Variablen. Das Beispiel ist ein Ausschnitt, kein ladbares Gesamtprojekt.
{
"format": "focale",
"version": 1,
"document": {
"width": 1920,
"height": 1080,
"dpi": 96,
"colorMode": "rgb",
"bitsPerChannel": 8
}
}PNG und .fcraster
sRGB RGB8 kann PNG nutzen; profiliertes RGB8 und andere Modi oder Tiefen verwenden .fcraster. Pixel sind vormultipliziert; transparente Pixel haben Prozesswerte null.
Version 1 hat einen 32-Byte-Header, Little-Endian-Ganzzahlen und verschachtelte Farbwerte mit Alpha je Pixel. Der Schreiber komprimiert mit zlib.
| Offset | Bytes | Feld |
|---|---|---|
| 0 | 8 | ASCII-Signatur FCRASTER |
| 8 | 2 | Version: 1 |
| 10 | 1 | Index: RGB, CMYK, Grayscale, Lab, Indexed, Bitmap, Duotone, Multichannel |
| 11 | 1 | Bits je Kanal: 1, 8, 16 oder 32 |
| 12 | 1 | Kanäle: 2, 4 oder 5 |
| 13 | 1 | Flags vormultipliziert, Little-Endian, zlib; aktuell 0x07 |
| 14 | 2 | Headergröße: 32 |
| 16 | 4 | Breite |
| 20 | 4 | Höhe |
| 24 | 8 | Dekodierte kanonische Länge |
Unabhängige Rasterkacheln
Mehrteilige Raster können einen JSON-Deskriptor .fctiles mit Größe, Format, Rechtecken und Verweisen verwenden.
Sie decken das Bild zeilenweise ohne Lücken oder Überlappung. Jede Achse ist auf 4096 Pixel begrenzt. Nutzdaten werden unter objects/raster/N.fcraster dedupliziert und bleiben im Nutzer-ZIP.
Modi und Tiefen
| Modus | Kanaltiefe |
|---|---|
| RGB, Graustufen | 8, 16, 32 Bit |
| CMYK, Lab, Mehrkanal | 8, 16 Bit |
| Indiziert, Duplex | 8 Bit |
| Bitmap | 1 Bit |
Prüfung und Portabilität
Aktuelle Grenzen: ZIP 1 GiB, 10.000 Einträge, Manifest 16 MiB, je Eintrag 512 MiB. Dekodierte Raster haben zusätzliche Grenzen. Doppelte Namen, fehlende Pflichtdaten und inkompatible Werte werden abgelehnt.
Eingebettete Quellen reisen mit; verknüpfte können den Originalpfad brauchen. Schriften werden nicht eingebettet. Prüfe Kopien und lies die vollständige Spezifikation.
Nicht enthaltene Daten
Vollständiger Rückgängig-Verlauf, Layout, Kürzel und lokale Kataloge sind Anwendungszustand, keine portable Sitzung.
Wiederherstellung kann einen benachbarten gemeinsamen Objektspeicher nutzen. Das unterscheidet sich von einem eigenständigen .focale-Nutzerprojekt.
Vollständige Formatreferenzen
Lade vollständige Markdown-Spezifikationen auf Englisch mit Schemata, Validierung und Kompatibilität herunter.