# Código-fonte da parte de HEIC do dicode.ai (LGPL-3.0) As páginas do dicode.ai que abrem fotos **HEIC** (o formato das fotos do iPhone), quando o navegador não abre esse formato sozinho, usam a biblioteca **libheif-js 1.23.5**. Ela traz dentro a **libheif 1.23.5** e a **libde265 1.0.15**. As três seguem a licença **LGPL-3.0** (o texto da licença e as outras licenças do site estão na página https://dicode.ai/licencas). A licença garante a quem recebe a biblioteca o acesso ao **código-fonte correspondente** da versão usada. É isto que está nesta pasta: o código-fonte exato de cada parte, sem nenhuma mudança nossa. A biblioteca roda inteira no seu navegador: a foto não é enviada a nenhum servidor. ## O que é cada arquivo | Arquivo | O que é | De onde veio | Versão (tag) → commit | |---|---|---|---| | `libheif-1.23.5.tar.gz` | libheif, que lê o formato HEIC | https://github.com/strukturag/libheif | `v1.23.5` → `413e2a87e6a70b3eccc3a3adc5801179dd2d9e00` | | `libde265-1.0.15.tar.gz` | libde265, o decodificador de vídeo HEVC que a libheif usa para as fotos, como está no repositório | https://github.com/strukturag/libde265 | `v1.0.15` → `17bb8d9fcea62db8cdeb0fc7ef8d15dbd19a22e4` | | `libde265-1.0.15-pacote-oficial.tar.gz` | o pacote oficial da libde265 1.0.15, exatamente o que a receita de montagem baixa (no GitHub, o nome é `libde265-1.0.15.tar.gz`) | https://github.com/strukturag/libde265/releases/download/v1.0.15/libde265-1.0.15.tar.gz | `v1.0.15` (pacote publicado junto com a versão) | | `libheif-emscripten-1.23.5.tar.gz` | a receita que monta a libheif em WebAssembly para rodar no navegador (Emscripten 3.1.61, com `USE_WASM=1` e `USE_UNSAFE_EVAL=0`); a libheif entra nela no commit `413e2a8` | https://github.com/catdad-experiments/libheif-emscripten | `v1.23.5` → `5c8968a44e9c68ae677e24790d77d001ed7fe7cc` | | `libheif-js-1.23.5.tar.gz` | o pacote `libheif-js` (a parte em JavaScript que liga a biblioteca à página) | https://github.com/catdad-experiments/libheif-js | `1.23.5` → `d8ec4bc3bc5bf8055975577bccbbc7e1d7313c2d` | | `SHA256SUMS` | o código SHA-256 de cada arquivo acima, para conferir que ele chegou inteiro e igual | — | — | Cada versão foi baixada direto do repositório oficial, pelo código do commit, e conferida com a etiqueta (tag) da versão. No pacote oficial da libde265, os arquivos de código (`.c`, `.cc` e `.h`) são os mesmos do repositório na tag `v1.0.15`; o único a mais, `libde265/de265-version.h`, é gerado na montagem e só diz a versão (`LIBDE265_VERSION "1.0.15"`). ## Como conferir Baixe os arquivos desta pasta (https://dicode.ai/codigo-fonte/heic/ mais o nome de cada um, por exemplo https://dicode.ai/codigo-fonte/heic/libheif-1.23.5.tar.gz) e o `SHA256SUMS` para uma mesma pasta no seu computador. Depois, nessa pasta, rode: ```bash sha256sum -c SHA256SUMS ``` Cada linha tem que terminar com `OK` (no Mac, use `shasum -a 256 -c SHA256SUMS`). Dúvidas: contato@dicode.ai.