Licencias de código abierto

Última actualización: 26 de septiembre de 2026

La conversión de una foto HEIC aquí ocurre dentro de tu propio navegador, y tu foto no se sube para ello. Para hacer eso, tu navegador descarga un pequeño programa de código abierto que lee HEIC. Esta página proporciona su licencia, dónde está su código fuente y cómo puedes reconstruirlo o reemplazarlo.

En resumen: el decodificador está licenciado bajo la LGPL-3.0, no lo modificamos, puedes descargar el código fuente del que creemos que fue construido, desde este sitio (más abajo indicamos lo que hemos verificado y lo que no), y eres libre de modificarlo, reemplazarlo y realizar ingeniería inversa para tu propio uso.

Lo que enviamos a tu navegador

Archivos y textos de licencia

La biblioteca se entrega como archivos separados, exactamente como sus autores los publicaron en el paquete npm (no cambiamos nada, y los archivos no se fusionan con ningún otro script):

SHA-256 de los dos binarios:

Código fuente, alojado aquí

El código fuente completo correspondiente se mantiene en este sitio, para que no dependas de GitHub. GitHub no incluye submódulos en sus archivos, por lo que libheif y libde265 son archivos separados. Cada archivo a continuación es el archivo tal como GitHub lo proporciona para la etiqueta o el commit mostrado.

Las mismas fuentes en GitHub: libheif-js (etiqueta 1.23.2), libheif-emscripten (etiqueta v1.23.2), libheif (commit ac1cb05) y libde265 (etiqueta v1.0.15). El paquete también está en npm (sha1 185691289ccfefe813e4b7f84ac4f84f24abb064). No hicimos ningún cambio a nada de esto.

Compílalo tú mismo

Estos pasos provienen del flujo de trabajo de compilación de libheif-emscripten v1.23.2 (.github/workflows/emscripten.yml, el objetivo “wasm”). Los copiamos del repositorio y no los hemos ejecutado nosotros mismos. Necesitas una máquina Ubuntu 22.04 limpia (el script de instalación ejecuta sudo apt-get e instala y elimina paquetes), Node.js 24, git, curl, cmake, make y una cadena de herramientas de C++.

git clone https://github.com/catdad-experiments/libheif-emscripten
cd libheif-emscripten
git checkout v1.23.2
git submodule update --init --recursive   # libheif at ac1cb05c39008f01525c991ff8b88f84ddf70fd2

npm install -g typescript@5
export EMSCRIPTEN_VERSION=3.1.61
cd libheif
./scripts/install-ci-linux.sh             # installs Emscripten 3.1.61
./scripts/prepare-ci.sh
sed -e 's/USE_WASM=0/USE_WASM=1 USE_UNSAFE_EVAL=0/g' -e 's/USE_TYPESCRIPT=0/USE_TYPESCRIPT=1/g' \
    ./scripts/run-ci.sh > ./scripts/run-ci-wasm.sh
chmod +x ./scripts/run-ci-wasm.sh
./scripts/run-ci-wasm.sh                  # also downloads and builds libde265 1.0.15
cd ..
./dist-prep.sh wasm                       # result: dist/libheif.js, dist/libheif.wasm

El paquete libheif-js luego ejecuta el .js archivo a través de esbuild (minificar, objetivo es2019) con su scripts/install.js; es por eso que nuestro libheif.js está minificado. SOURCE.txt explica este paso también. No se garantiza que una recompilación sea bit a bit idéntica a los archivos que distribuimos.

Reemplaza la biblioteca con tu propia versión

El convertidor carga libheif.js y libheif.wasm como dos archivos separados desde /vendor/libheif-js/, a través de /heic-worker.js. Para usar tu propia compilación, reemplaza ambos archivos, manteniendo los mismos nombres y carpeta. Tu compilación debe ofrecer la interfaz que /heic-worker.js usa:

En la práctica: guarda la página y estos archivos, pon tu compilación en el mismo lugar y sirve esa carpeta tú mismo (por ejemplo, con python3 -m http.server), o usa la función de anulación local de tu navegador para servir tu propio archivo en la misma dirección.

Sus derechos

Puedes modificar la biblioteca para tu propio uso, y puedes aplicar ingeniería inversa para depurar esas modificaciones. Nada en este sitio o en sus términos limita eso.

Decodificador anterior

Hasta el 26 de septiembre de 2026, este sitio utilizaba la biblioteca heic2any (versión 0.0.4, licencia MIT) para archivos HEIC. Ya no se utiliza y la licencia anterior no se aplica a ella: el decodificador que incluimos ahora es libheif-js LGPL-3.0 descrito en esta página. Reemplazamos heic2any porque cambiaba el contraste y los colores de muchas fotos de teléfono y no podía leer algunos archivos HEIC más recientes.

Preguntas

Usa el botón de comentarios en cualquier página, o contáctanos a través de página de contacto.