libde265 で有名な struktur AG さんが HEIF を JPEG や PNG に変換するツールを公開しているので、そのビルドと使い方メモです。
あと、このツールは HEIF 生成は出来ません、あくまで読むのだけ。
いつの間にかエンコードも出来るようになっていました。デコードは libde265 のままで、エンコードには x265 を使います。 (2018/08/02 追記)
HEIF は画像を H.265/HEVC Iフレーム1コマとして持ち、それを ISOBMFF(QuickTime の後継コンテナ仕様)で包んだ画像形式です。詳しくはこちらをどうぞ > https://speakerdeck.com/yoya/heif-kaisetsu
レポジトリ
- https://github.com/strukturag/libde265
- https://github.com/strukturag/libheif
- https://bitbucket.org/multicoreware/x265
libde256 のビルド
% git clone git@github.com:strukturag/libde265.git
% cd libde265
% git checkout v1.0.2
2種類のビルド方法が用意されています。README.md には cmake 方式が案内されているので、こっちが推奨だと思われます。
- cmake 方式
% mkdir build
% cd build
% cmake ..
% make
- automake 方式
% ./autogen.sh
% ./configure
% make
% make install
libheif のビルド
% git clone git@github.com:strukturag/libheif.git
% cd libheif
% git checkout v1.0.0
- cmake 方式
% mkdir build
% cd build
% cmake ..
% make
- automake 方式
% ./autogen.sh
% ./configure
% make
% make install
コマンド実行
引数1つ目にHEIF画像ファイル、2つ目に出力先画像を指定します。拡張子に応じて JPEG や PNG を出力します。
% which heif-convert
/usr/local/bin/heif-convert
% heif-convert IMG_0001.HEIC output.JPG
File contains 1 images
% heif-convert IMG_0001.HEIC output.PNG
File contains 1 images
%
蛇足
ImageMagick の Delegate 設定でこの heif-convert コマンドを繋げると、HEIC画像を読み込みできます。(書き出しはできません)
- ImageMagick で HEIF 画像を読む方法 (Delegate 方式で)
- https://qiita.com/yoya/items/cc7cda887b4c2666ab52
最新版 ImageMagick では HEIF 対応していますが、どうしても古いバージョンの ImageMagick で HEIF を読みたい。といった場合にどうぞ。
あと、今のところ ImageMagick に入った HEIC コーダー(coders/heic.c) は出来がよくないので、こっちの方が便利。。
ImageMagick の HEIC コーダー。独自でコンテナ組み立てしていたのを全部捨てて、libheif を使う方式で作り直したので、良い感じになりました。 (2018/08/02 追記)