# LibRaw (WebAssembly) — revelado de fotos RAW

Sirve la hoja «Develop» de Design (`components/graphics/compositor/RawDevelopSheet.tsx`): lee el RAW de la cámara
(CR2, CR3, NEF, ARW, DNG, RAF, ORF, RW2…) en el navegador, dentro de un Web Worker, y da los píxeles sin revelar sobre los
que Design aplica Exposure, Temperature, Tint y Boost (`lib/graphics/importar/rawDesarrollo.ts`). Sólo se descarga al
abrir un RAW: nada de esto entra en el editor hasta entonces.

Ficheros (los de `dist/` del paquete npm `libraw-wasm` 1.6.0, sin tocar salvo quitar la línea `sourceMappingURL`):

* `worker.js` — el worker (envoltorio + módulo de Emscripten). Lo crea `lib/graphics/importar/libraw.ts` con
  `new Worker('/libraw/worker.js', { type: 'module' })`.
* `libraw.js` — el mismo módulo, para los hilos auxiliares que Emscripten abre (`em-pthread`).
* `libraw.wasm` — LibRaw 0.22.1 + LCMS 2.19.1 compilados con Emscripten. Se busca junto al worker.

## Licencias

* **LibRaw** © LibRaw LLC — doble licencia LGPL 2.1 / CDDL 1.0. Se usa bajo la **CDDL 1.0**. Es la 0.22.1 sin modificar
  y sin los paquetes de demosaico GPL; el código fuente está en https://github.com/LibRaw/LibRaw (etiqueta `0.22.1`) y
  https://www.libraw.org.
* **Little CMS 2** © Marti Maria — MIT.
* **libjpeg** (IJG), **libpng** y **zlib** — los puertos de Emscripten, con sus licencias permisivas.
* **Envoltorio `libraw-wasm`** © ybouane y colaboradores — ISC. Origen: https://github.com/ybouane/LibRaw-Wasm
  (commit `078bdd49c10f62725b460f5594bc3141a82a9579`), paquete https://www.npmjs.com/package/libraw-wasm.

La build se hizo con `compileLibraw.sh` de ese repositorio (Emscripten 5.0.7, `-s USE_PTHREADS=1`, memoria compartida de
hasta 2 GB). No necesita cabeceras COOP/COEP en Chromium; si el navegador no puede abrir la memoria compartida, la hoja
lo detecta y el RAW entra por la vista previa JPEG que lleva dentro (`lib/graphics/importar/raw.ts`).
