# Motor de cor e perfis do PDF imaGEN

`lcms-1.0.5/lcms.js` é a distribuição ESM original de **lcms-wasm 1.0.5**, de Matt DesLauriers, MIT. Usa **LittleCMS 2.16**, de Marti Maria Saguer, MIT. As duas licenças integrais estão ao lado do motor. Fontes oficiais: https://github.com/mattdesl/lcms-wasm e https://github.com/mm2/Little-CMS/tree/lcms2.16.

O WASM é uma cópia **modificada**: somente os três bytes do limite máximo de memória, no offset 1807, mudam de `80 80 02` (2 GiB) para `80 90 00` (128 MiB). O mínimo continua 16 MiB. Nenhuma instrução de conversão ou tabela de cor muda. `scripts/qa/prepare-print-runtime.mjs` reproduz a alteração a partir do pacote pinado, confere o original e o resultado e compila o binário para validar sua estrutura.

- JS original SHA-256: `1a5c8f81186211856ba7c5d6841e35fe3fa901b857a247f72318e1652c5e1cec`.
- WASM upstream SHA-256: `dbcbee3fb3a49459a60bb6b29d6ab25fe7c219b0cc0c2b9579c0cc78f7390ddd`.
- WASM com limite SHA-256: `079a641c2ed962b41c3b97870341912dd56259834f5d1ece02ce8a9dfa6647bb`.

O worker do aplicativo é `color-worker.js`. Ele não faz parte do código upstream. Recebe o ICC local aprovado pelo usuário e o sRGB de origem, trabalha em blocos de até 65.536 pixels, é cancelável e termina ao final da exportação. O controlador encerra uma operação sem resposta em 30 segundos e limita a conversão a 60 segundos por exportação. O perfil nunca é enviado a um provedor ou salvo na nuvem.

## Perfil de origem

`sRGB2014.icc` é a cópia inalterada publicada pelo International Color Consortium:

- https://registry.color.org/rgb-registry/profiles/sRGB2014.icc
- https://registry.color.org/rgb-registry/srgbprofiles
- SHA-256: `384b832de3412066743b52a75ee906b6fb9fb8d9e09e936fc2c43223815c6e0a`.
- Termos oficiais: https://registry.color.org/profile-library/ (seção Licensing). O ICC permite copiar, distribuir, incorporar, usar e vender os perfis de sua autoria. Identificação e copyright originais foram preservados no arquivo. Não foi aplicada a licença a perfis de terceiros.

**Não distribuímos perfil de impressão CMYK.** O usuário escolhe seu ICC de saída CMYK v2/v4, fornecido ou aprovado pela gráfica, até 4 MB. O PDF contém os bytes exatos do perfil selecionado; seu nome de arquivo e SHA-256 constam do relatório incorporado. O nome não é uma certificação da origem ou da adequação do perfil.

Converter usa intenção colorimétrica relativa com compensação de ponto preto. O resultado é ICCBased CMYK real, sem declarar PDF/X, PDF/A, tinta especial, separação de preto puro ou prova de cor de monitor.
