2019年6月15日土曜日

HEICファイルをjpgに (linux)

unbuntu16.04LTSでHEICファイルをJPEGにします。

・GIMP
・heif-convert

どちらの方法でもできました。

iOS11 以降で画像ファイルがHEICで圧縮されているとのこと。これをHTMLに表示するには、JPGにしたいです。

■GIMPを使う

GIMPがインストールされているなら簡単です。GIMPでHEICファイルも普通に読み込めますから、エクスポート保存するときにJPGにできます。


■heif-convertを使う

https://kameid.hatenadiary.org/entry/20181002/1538461121

このページで紹介されていた方法でやってみました。ライブラリのインストールに時間かかりまくりでビビります。コードはリンク先で。

--最初失敗していたとき--

heif-convertは入っているようですが、

Unknown file type in hoge.jpg

という出力が出ていて、jpgファイルタイプが認識されていないようです。

インストールのときのログを見ていると、

checking jpeglib.h usability... no
checking jpeglib.h presence... no
checking for jpeglib.h... no
checking for jpeg_CreateCompress in -ljpeg... no
checking for jpeg_destroy_compress in -ljpeg... no
checking for libpng... no
configure: Enable multithreading
configure: ---------------------------------------
configure: Multithreading: yes
configure: Symbol visibility: yes
configure: libde265 decoder: yes
configure: libx265 encoder: no
configure: JPEG output: no
configure: PNG output: no

こう出ていました。
やはり、jpegもpngもc++のライブラリか何かが足りていないようですが・・・。

yum がそもそもUbuntuでは使えていない!!という気付き。

ログをよく見ると
$ yum install git gcc-c++ automake libtool libjpeg-devel
The program 'yum' is currently not installed. You can install it by typing:
sudo apt install yum
ってなっていました。そういえばyumって使えないんでしたっけ。理由は判明。あまりにも初歩的だった・・・。

教訓: 複数行を同時に実行するときはログをきちんと見ましょう。OSに合ったコマンドを入れましょう。

RedHat系(Fedora, CentOSとか)ではyum、Debian系(Ubuntuとか)ではaptです。普段からubuntuの例しか見ていなかったので意識していませんでした。yumって何?とか思いながらコピペしてしまいました。

まずJPEG用のライブラリを2つインストールします。名前がCent系とちょこっと変わるみたいです。

$ sudo apt-get install libtool-bin
$ sudo apt-get install libjpeg-dev

これを入れてから、再度ライブラリのインストールをします。

途中のログはこのようになって、jpegのライブラリがyesになっています。

checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking for jpeg_CreateCompress in -ljpeg... yes
checking for libpng... no
configure: Enable multithreading
configure: ---------------------------------------
configure: Multithreading: yes
configure: Symbol visibility: yes
configure: libde265 decoder: yes
configure: libx265 encoder: no
configure: JPEG output: yes
configure: PNG output: no

これでheif-convertも使えるようになりました。

heif-convert使い方

例としてhoge.jpgというファイルを出力します。

$ heif-convert IMG_3046.HEIC hoge.jpg
とすると、このような出力が出ます。

File contains 1 images
Written to hoge.jpg

この例では、元のHEICファイルは1.2MBでしたが、JPGに戻すと1.7MBになりました。確かにHEIC圧縮率が高いということが分かります。

参考にしたページ
http://atasatamatara.hatenablog.jp/entry/20120723/1343044059
http://kz-engineer-scrap.hatenablog.com/entry/2017/02/12/003718
https://forums.ubuntulinux.jp/viewtopic.php?id=8530
https://askubuntu.com/questions/625523/libtool-installed-but-not-on-path-after-installation

0 件のコメント:

コメントを投稿