XCF (GIMP) visor
Formato nativo con capas de GIMP — vista previa estructural con árbol de capas.
XCF es el formato de edición nativo y completamente por capas de GIMP — máscaras, canales, paths, parasites, más precisión arbitraria (entero de 8 bits hasta float de 32 bits). Hoy no existe un renderizador del lado del navegador (el paquete xcf-js referenciado en tutoriales nunca llegó a npm; portar el compositor completo de GIMP queda fuera de alcance), pero la spec del formato XCF está publicada, así que podemos parsear la cabecera nosotros mismos. Extraemos la versión de GIMP que escribió el archivo, las dimensiones del canvas, el tipo base (RGB/escala de grises/indexado), la precisión, cada puntero de capa y los primeros ~24 nombres y tamaños de capa recorriendo la cadena de nombre de cada bloque de capa.
- ¿Por qué se muestra el árbol de capas pero no el composite real?
- Renderizar un composite XCF requiere ejecutar el motor completo de compositing de capas de GIMP: modos de fusión, máscaras de capa, capas de grupo, dithering para el tipo base indexado y decodificar el formato RLE por tile usado para guardar los datos de píxel. Eso son cientos de miles de líneas de código C en el propio GIMP. Parseamos la cabecera y el índice de capas en TypeScript puro para que verifiques lo que hay dentro, pero para los píxeles reales necesitas GIMP, Krita (que puede abrir XCF para visualización) o una conversión del lado del servidor con ImageMagick.
- ¿Qué versiones de XCF admite el inspector?
- Leemos la etiqueta de versión de los 5 bytes tras el magic — "file" para el XCF1 original (anterior a 2008, GIMP 2.4), luego "v001"/"v002"/… para revisiones más nuevas. v004 añadió la palabra de precisión para soporte de alta profundidad de bits. Nuestro parser maneja todas las versiones hasta v013 (GIMP 2.10/3.0 actual); el recorrido de punteros de capa funciona igual entre versiones.
- ¿Cómo obtengo una imagen normal desde un archivo XCF?
- El propio GIMP: File → Export As → PNG/JPEG/TIFF. Línea de comandos: gimp --batch '(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE "in.xcf" "in.xcf")))) (file-png-save RUN-NONINTERACTIVE image (car (gimp-image-flatten image)) "out.png" "out" 0 9 1 1 1 1 1))' -b '(gimp-quit 0)'. Krita también puede abrir XCF directamente. ImageMagick leerá XCF si se construyó con soporte para GIMP.
- ¿Manejas los campos de precisión y tipo base?
- Sí — el inspector decodifica la palabra de tipo base (0 = RGB, 1 = Escala de grises, 2 = Indexado) y, para archivos v004+, la palabra de precisión (8-bit linear / no-linear / perceptual, 16-bit entero o half-float, 32-bit float, 64-bit double). Los XCFs de alta profundidad de bits desde GIMP 2.10+ que usan internamente float de 32 bits para compositing se identifican correctamente.
- .svgSVGScalable Vector Graphics.Abrir
- .pngPNGImagen ráster sin pérdida.Abrir
- .jpgJPEGImagen fotográfica con pérdida.Abrir
- .gifGIFImagen ráster animada/estática.Abrir
- .webpWebPImagen moderna de Google con/sin pérdida.Abrir
- .avifAVIFFormato de imagen moderno basado en AV1.Abrir
- .bmpBMPBitmap sin comprimir de Windows.Abrir
- .icoICOIcono multirresolución de Windows.Abrir