2018/04/27

heic ファイルを扱える Imagemgick をインストールする

@Ubuntu 16.04 LTS18.04 LTS がまさに出ようというその時に…

[ImageMagick](http://www.imagemagick.org/script/index.php) が heic フォーマットHEIF フォーマットと言った方が良いのか?しかし、HEIF はコンテナフォーマットのことなので適切とは言えないか…に対応したようなので、ソースコードからコンパイルしてインストールしてみました。

以下によると、6.9.9 もしくは 7.0.7 以降が対象とのこと。

> 参考
>
> [ImageMagick-6.9.9-34差分 - yoyaのメモ](http://d.hatena.ne.jp/yoya/20180123/im)



### すでに ImageMagick をパッケージインストールしている場合は削除
古いバージョンと共存させたい場合を除き、削除しておいたほうが良いでしょう。

```console
`gutter: false;
$ sudo apt remove imagemagick
```

### libde265 のインストール
これは apt を使って入れました。

```console
`gutter: false; 
$ sudo apt install libde265-dev
$ apt-cache policy libde265-dev               [~/Downloads/tmp]
libde265-dev:
  Installed: 1.0.2-2
  Candidate: 1.0.2-2
  Version table:
 *** 1.0.2-2 500
        500 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
```

### ビルド
以下よりソースコードを取得して、

[Install from Source @ ImageMagick](http://www.imagemagick.org/script/install-source.php)

`install-unix.txt` に書いてある通りに実行。

```console
`gutter: false; highlight: 29;
$ tar xvzf ImageMagick.tar.gz
$ cd ImageMagick-7.0.7-28
$ ./configure
...略
                 Option                        Value
  ------------------------------------------------------------------------------
  Shared libraries  --enable-shared=yes  yes
  Static libraries  --enable-static=yes  yes
  Module support    --with-modules=no  no
  GNU ld            --with-gnu-ld=yes  yes
  Quantum depth     --with-quantum-depth=16 16
  High Dynamic Range Imagery
                    --enable-hdri=yes  yes

  Install documentation:   yes

  Delegate Library Configuration:
  BZLIB             --with-bzlib=yes  no
  Autotrace         --with-autotrace=no  no
  DJVU              --with-djvu=yes  no
  DPS               --with-dps=yes  no
  FFTW              --with-fftw=yes  no
  FLIF              --with-flif=yes  no
  FlashPIX          --with-fpx=yes  no
  FontConfig        --with-fontconfig=yes yes
  FreeType          --with-freetype=yes  yes
  Ghostscript lib   --with-gslib=no  no
  Graphviz          --with-gvc=yes  no
  HEIC              --with-heic=yes     yes
...略
```

libde265 をインストールしてあると、`HEIC    --with-heic=yes    yes` となっているはずなので確認しましょう。

大丈夫そうならコンパイル。

```console
`gutter: false; 
$ make
```

### インストール
これも `install-unix.txt` に書いてある通り。

```console
`gutter: false; 
$ sudo make install
$ sudo ldconfig /usr/local/lib
```

ちゃんとインストールできたか、バージョンを確認。

```console
`gutter: false; highlight: 2;
$ mogrify -version
Version: ImageMagick 7.0.7-28 Q16 x86_64 2018-04-26 http://www.imagemagick.org
Copyright: © 1999-2018 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP 
Delegates (built-in): fontconfig freetype heic jng jpeg pangocairo png x xml zlib
```

### JPEG に変換してみる

```console
`gutter: false; 
$ mogrify -format jpg *.heic
mogrify: improper image header `item id is incorrect' @ error/heic.c/ParseInfeAtom/492.
```

`item id` というヘッダ項目に対応していない旨の警告多分、`libde265` のバージョンが上がれば直るのではないかと思いますが出ましたが、画像はきちんと変換されました。

0 件のコメント: