Formato de proyecto .focale
Archivo ZIP, manifiesto versión 1 y almacenamiento exacto de rasters.
Verificado con el código de la aplicación el 5 de octubre de 2026. Focale está en desarrollo activo; comandos y paquetes pueden variar según la compilación.
Estructura del archivo
Es un ZIP estándar, sin cifrado ni ofuscación. manifest.json es obligatorio; preview.png es opcional, con un lado máximo de 512 píxeles.
Rasters, máscaras, canales, perfiles ICC, fuentes colocadas, documentos anidados y patrones tienen directorios propios. Los nombres codifican identificadores opacos, no rutas.
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/….fptileManifiesto con versión
La etiqueta raíz es focale y el escritor actual utiliza la versión 1. Se rechazan versiones posteriores no compatibles.
Guarda geometría, color, profundidad, perfiles y árbol de capas, con trazados, guías, canales, sectores, composiciones, animación y variables opcionales. El ejemplo es un fragmento, no un proyecto completo.
{
"format": "focale",
"version": 1,
"document": {
"width": 1920,
"height": 1080,
"dpi": 96,
"colorMode": "rgb",
"bitsPerChannel": 8
}
}PNG y .fcraster
RGB8 sRGB puede usar PNG. RGB8 con perfil y otros modos o profundidades usan .fcraster. Los píxeles son premultiplicados; los transparentes tienen muestras de proceso nulas.
La versión 1 tiene una cabecera de 32 bytes, enteros little-endian y muestras entrelazadas seguidas de alfa por píxel. El escritor comprime con zlib.
| Posición | Bytes | Campo |
|---|---|---|
| 0 | 8 | Firma ASCII FCRASTER |
| 8 | 2 | Versión: 1 |
| 10 | 1 | Índice: RGB, CMYK, Grayscale, Lab, Indexed, Bitmap, Duotone, Multichannel |
| 11 | 1 | Bits por canal: 1, 8, 16 o 32 |
| 12 | 1 | Canales: 2, 4 o 5 |
| 13 | 1 | Indicadores premultiplicado, little-endian y zlib; valor actual 0x07 |
| 14 | 2 | Tamaño de cabecera: 32 |
| 16 | 4 | Anchura |
| 20 | 4 | Altura |
| 24 | 8 | Longitud canónica decodificada |
Mosaicos independientes
Un raster dividido puede usar un descriptor JSON .fctiles con dimensiones, formato nativo, rectángulos y referencias.
Cubren la imagen en orden de filas, sin huecos ni solapamiento; cada eje está limitado a 4096 píxeles. Los datos se deduplican en objects/raster/N.fcraster y permanecen dentro del ZIP del usuario.
Modos y profundidades
| Modo | Profundidad |
|---|---|
| RGB, Escala de grises | 8, 16, 32 bits |
| CMYK, Lab, Multicanal | 8, 16 bits |
| Indexado, Duotono | 8 bits |
| Mapa de bits | 1 bit |
Validación y portabilidad
Límites actuales: ZIP de 1 GiB, 10 000 entradas, manifiesto de 16 MiB y 512 MiB por entrada. Los rasters decodificados tienen límites adicionales. Nombres duplicados, datos obligatorios ausentes y muestras incompatibles se rechazan.
Las fuentes incrustadas viajan con el proyecto; las vinculadas pueden necesitar su ruta original. No se incrustan fuentes tipográficas. Inspecciona una copia y consulta la especificación completa.
Datos ajenos al proyecto
El historial completo de Deshacer, distribución, atajos y catálogos locales son estado de la aplicación, no de la sesión portátil.
Los puntos de recuperación pueden usar un almacén compartido adyacente. No los confundas con un .focale autónomo del usuario.
Referencias completas de formatos
Descarga especificaciones Markdown completas en inglés, con esquemas, validación y compatibilidad.