# HEIC変換のソースとビルド案内

配信モジュールはnpm heic-to 1.6.5から取得した未改変のdist/heic-to.jsです。アプリから相対パスで独立したESモジュールとしてimportしています。差し替える場合も同じexport（heicTo）が必要です。

取得元:
- https://registry.npmjs.org/heic-to/-/heic-to-1.6.5.tgz
- https://github.com/hoppergee/heic-to/tree/v1.6.5 （commit f6b3c42d02e6118e1b88fb279baf0fc6184747f8）
- https://github.com/strukturag/libheif/tree/v1.23.5
- https://github.com/strukturag/libde265/releases/tag/v1.0.16
- https://github.com/emscripten-core/emscripten/blob/main/LICENSE

各ソースtar.gzをこのフォルダに同梱しています。heic-toはesbuild.mjs、package.json、srcと上流READMEを含みます。libheifにはbuild-emscripten.shとC/C++ソース、libde265にはconfigureとソースを含みます。

上流のビルド方法（このプロジェクトでは実行していません）:
1. Emscripten、CMake、make、pkg-config等を用意します。
2. libheifを展開してbuildjsディレクトリを作り、LIBDE265_VERSION=1.0.16 USE_WASM=0 ../build-emscripten.sh .. を実行します。macOS固有のllvm-nmの指定変更はheic-to同梱READMEを参照してください。上流の標準設定はlibde265あり、AOM・OpenJPEGなしです。
3. 生成したlibheif.jsをheic-toのsrc/lib/libheif.jsに配置します。
4. heic-toディレクトリで依存を導入し、npm run buildを実行します。
5. 生成したdist/heic-to.jsをアプリのvendor/heic-to/package/dist/heic-to.jsに配置します。

配信バイナリと再ビルドのビット単位の一致は未確認です。上流はEmscriptenの厳密なバージョン・完全なビルド環境を明記していません。ライブラリは未改変であり、その不足をこちらで検証済みとして扱いません。各ソース中の著作権表記とライセンスを保持しています。
