Social Magnum HEIC to JPG — decoder notices and corresponding source The browser loads unmodified libheif-js 1.23.2 as a separate runtime library: /heic/vendor/libheif-bundle.js No photo is transmitted to a server for decoding. Components: - libheif-js 1.23.2 by Kiril Vatev and contributors, LGPL-3.0. Repository: https://github.com/catdad-experiments/libheif-js Exact revision: 6ca00b818c0ff51cb2a5c75b9ce97d708083335a - libheif at ac1cb05c39008f01525c991ff8b88f84ddf70fd2, LGPL-3.0-or-later. Repository: https://github.com/strukturag/libheif - libde265 1.0.15, LGPL-3.0-or-later. Repository: https://github.com/strukturag/libde265 Full license texts: /heic/licenses/libheif-js-LGPL-3.0.txt /heic/licenses/libheif-COPYING.txt /heic/licenses/libde265-LGPL-3.0.txt /heic/licenses/GPL-3.0.txt The libraries are provided WITHOUT ANY WARRANTY, including the implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Corresponding source and build recipes (same server, no charge): /free-tools/heic-to-jpg/sources/libheif-js-1.23.2.tar.gz /free-tools/heic-to-jpg/sources/libheif-ac1cb05.tar.gz /free-tools/heic-to-jpg/sources/libde265-1.0.15.tar.gz /free-tools/heic-to-jpg/sources/build-1.23.2.tar.gz Build/replacement: 1. Extract the libheif-emscripten build archive. Put the exact libheif source at its libheif/ subdirectory. Its .github/workflows/emscripten.yml records the Emscripten 3.1.61 setup and build steps (WASM, USE_UNSAFE_EVAL=0). 2. libheif/build-emscripten.sh records the libde265 1.0.15 dependency and compile/link flags. Use the supplied libde265 release source at the path expected by that script. Optional AOM/WebCodecs codecs are disabled. 3. Follow the build workflow to create libheif.tar.gz. Extract the libheif-js source, install its development dependencies and run node scripts/install.js /absolute/path/to/libheif.tar.gz to produce libheif-wasm/libheif-bundle.js. 4. The adapter /heic/decode-worker.js loads the decoder independently using importScripts and its public HeifDecoder API. Replace the separate bundle with a compatible modified build in your copy of the application, or use browser local response overrides to test a replacement. Our adapter does not check the decoder's hash, signature or identity at runtime. You may modify and reverse engineer the library and the combined work for purposes of debugging those modifications, as permitted by the LGPL. Nothing in the site's terms is intended to restrict those library rights. Emscripten 3.1.61 compiler/runtime notices (MIT and University of Illinois/NCSA): /heic/licenses/emscripten-LICENSE.txt Source and toolchain setup: https://github.com/emscripten-core/emscripten/tree/3.1.61