uDocumentViewer
Imagens.xcf

XCF (GIMP) visualizador

pronto
Sobre XCF (GIMP)

Formato em camadas nativo do GIMP — pré-visualização estrutural com árvore de camadas.

XCF é o formato nativo de edição totalmente em camadas do GIMP — máscaras, canais, paths, parasites, mais precisão arbitrária (inteiro de 8 bits até float de 32 bits). Não existe hoje um renderizador do lado do navegador (o pacote xcf-js referenciado em tutoriais nunca chegou ao npm; portar o compositor completo do GIMP está fora do âmbito), mas a especificação do formato XCF é pública, por isso podemos analisar o cabeçalho nós próprios. Extraímos a versão do GIMP que escreveu o ficheiro, dimensões da tela, tipo base (RGB/grayscale/indexed), precisão, cada ponteiro de camada e os primeiros ~24 nomes e tamanhos de camada percorrendo a string de nome de cada bloco de camada.

Perguntas frequentes
Porque é que a árvore de camadas é mostrada mas não a composição real?
Renderizar uma composição XCF requer correr o motor de composição em camadas completo do GIMP: modos de mistura, máscaras de camada, camadas de grupo, dithering para o tipo base indexed e descodificação do formato RLE por tile usado para armazenar dados de píxeis. São centenas de milhares de linhas de código C no próprio GIMP. Analisamos o cabeçalho e o índice de camadas em TypeScript puro para que possa verificar o conteúdo, mas para os píxeis reais precisa do GIMP, Krita (que consegue abrir XCF para visualização) ou de uma conversão server-side com ImageMagick.
Que versões XCF são suportadas pelo inspetor?
Lemos a tag de versão dos 5 bytes a seguir à magic — "file" para o XCF1 original (GIMP 2.4 pré-2008), depois "v001"/"v002"/… para revisões mais recentes. v004 acrescentou a palavra de precisão para suporte de alta profundidade de bits. O nosso parser lida com todas as versões até v013 (GIMP 2.10/3.0 atual); a iteração de ponteiros de camada funciona da mesma forma entre versões.
Como obtenho uma imagem normal a partir de um ficheiro XCF?
Pelo próprio GIMP: Ficheiro → Exportar Como → PNG/JPEG/TIFF. Linha 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)'. O Krita também consegue abrir XCF diretamente. O ImageMagick lê XCF se tiver sido compilado com suporte para GIMP.
Tratam os campos de precisão e tipo base?
Sim — o inspetor descodifica a palavra de tipo base (0 = RGB, 1 = Grayscale, 2 = Indexed) e, para ficheiros v004+, a palavra de precisão (8 bits linear / não linear / percetual, 16 bits inteiro ou half-float, 32 bits float, 64 bits double). XCFs de alta profundidade de bits do GIMP 2.10+ que usam float de 32 bits internamente para composição são corretamente identificados.
Mais Imagens