Le format de projet .focale

Structure ZIP, manifeste version 1, rasters exacts et données portables du document.

Documentation vérifiée dans les sources de l’application le 5 octobre 2026. Focale évolue activement ; les commandes et paquets disponibles peuvent varier selon le build.

Organisation de l’archive

Un fichier .focale est une archive ZIP standard, sans chiffrement ni obfuscation. manifest.json est obligatoire ; preview.png est une vignette facultative dont le plus grand côté ne dépasse pas 512 pixels.

Rasters, masques, canaux, profils ICC incorporés, sources placées, documents imbriqués et motifs importés ont des répertoires distincts. Les noms encodent des identifiants opaques et ne sont pas interprétés comme des chemins.

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/….fptile

Un manifeste versionné

L’étiquette racine est focale et l’écriture actuelle utilise la version 1. Le lecteur refuse une version plus récente non prise en charge plutôt que d’en deviner le sens.

Le manifeste contient géométrie, mode colorimétrique, profondeur, profils et arbre de calques, ainsi que les éventuels tracés, repères, canaux, tranches, compositions, animations et variables. L’exemple ci-dessous est un extrait, pas un projet complet chargeable.

{
  "format": "focale",
  "version": 1,
  "document": {
    "width": 1920,
    "height": 1080,
    "dpi": 96,
    "colorMode": "rgb",
    "bitsPerChannel": 8
  }
}

PNG et entrées exactes .fcraster

Les rasters de données RVB8 sRGB peuvent utiliser PNG. Le RVB8 avec profil et les autres modes ou profondeurs utilisent .fcraster pour conserver les échantillons et leur précision. Les pixels sont prémultipliés ; les pixels entièrement transparents ont des composantes nulles.

La version 1 de .fcraster commence par un en-tête de 32 octets. Les entiers sont en little-endian ; chaque pixel contient ses composantes puis l’alpha. L’écriture actuelle compresse cette charge avec zlib.

PNG et entrées exactes .fcraster
PositionOctetsChamp
08Signature ASCII FCRASTER
82Version du conteneur : 1
101Indice de mode : RGB, CMYK, Grayscale, Lab, Indexed, Bitmap, Duotone, Multichannel
111Bits par canal : 1, 8, 16 ou 32
121Nombre de canaux entrelacés : 2, 4 ou 5
131Drapeaux : prémultiplication, little-endian, zlib ; écriture actuelle 0x07
142Taille de l’en-tête : 32
164Largeur
204Hauteur
248Longueur canonique décodée en octets

Tuiles raster indépendantes

Un raster à plusieurs tuiles peut utiliser un descripteur JSON .fctiles à la place d’une entrée PNG ou .fcraster unique. Il décrit les dimensions, le format natif, les rectangles des tuiles et leurs références.

Les tuiles couvrent l’image sans trou ni chevauchement, dans l’ordre des lignes. Chaque axe est limité à 4096 pixels. Les charges exactes sont dédupliquées sous objects/raster/N.fcraster ; un projet utilisateur garde ses objets dans le ZIP.

Modes et profondeurs

Modes et profondeurs
ModeProfondeurs prises en charge
RVB, Niveaux de gris8, 16, 32 bits
CMJN, Lab, Multicanal8, 16 bits
Couleurs indexées, Bichromie8 bits
Bitmap1 bit

Validation et portabilité

Les lecteurs et écrivains actuels limitent le ZIP à 1 Gio, 10 000 entrées, un manifeste de 16 Mio et 512 Mio par entrée. Les rasters décodés ont aussi leurs limites de géométrie et de mémoire. Les noms possédés en double, données obligatoires absentes et échantillons incompatibles sont refusés.

Les sources incorporées voyagent avec le projet ; les sources liées peuvent nécessiter leur chemin d’origine. Les polices ne sont pas incorporées. Inspectez une copie et consultez la référence complète avant d’écrire un lecteur.

Ce que le projet ne contient pas

L’historique complet des commandes Annuler, la disposition de l’interface, les raccourcis et les catalogues locaux de préréglages sont des données de l’application. Ils ne constituent pas une session intégrée au projet portable.

Les points de récupération peuvent utiliser un stockage d’objets partagé adjacent. Ce sont des données gérées par l’application, à distinguer d’un fichier .focale utilisateur autonome.

Références complètes des formats

Téléchargez les spécifications Markdown complètes en anglais : schémas, règles de validation et détails de compatibilité.

Autres pages de documentation