2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ImageMagickのheic対応

Posted at

RailsのアプリケーションでHEICファイルをPDFファイルに変換する際にエラーになり解消までかなりハマったので対応方法を記載

環境

OS: Amazon linux
ImageMagick 7.1.0-7 

発生した事象

MiniMagick::Imageでheicファイルを扱おうとしたときにエラー

irb(main):003:0> MiniMagick::Image.open(tenant_applicant.tenant_applicant_identifications.second.identification_file.file.url)
[0.01s] magick identify /tmp/mini_magick20230309-32496-mqc52m.heic
Traceback (most recent call last):
        1: from (irb):3
MiniMagick::Invalid (`magick identify /tmp/mini_magick20230309-32496-mqc52m.heic` failed with error:)
identify: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/572.

どうやらMinimagickではなくImagemMagickの問題のよう
https://github.com/minimagick/minimagick/issues/538

確認する

$ convert --version
Version: ImageMagick 7.1.0-7 Q16-HDRI x86_64 2021-09-04 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib fontconfig freetype jng jpeg lzma png tiff x xml zlib
Compiler: gcc (7.3)

確かにDelegatesのところにheicがない

調べているとlibde265とlibheifをインストールすればいいという記事を見かけインストールしようとしたのですがパッケージが見当たらない。
https://github.com/ImageMagick/ImageMagick/issues/1470

# yum list | grep libheif
// 何も表示されない
# yum list | grep libde265
// 何も表示されない

yumでインストールできないのでソースコードからインストールしていきます。

libde265インストール

# git clone https://github.com/strukturag/libde265.git -b v1.0.11 libde265-1.0.11
# cd libde265-1.0.11
# ./autogen.sh
# ./configure
# make
# make install

libheifインストール

# git clone https://github.com/strukturag/libheif.git -b v1.15.1 libheif-1.15.1
# cd libheif-1.15.1
# ./autogen.sh
# ./configure
# make
# make install
# which heif-convert
/usr/local/bin/heif-convert

Imagemagickでheicを対応させる

# cd imagemagickのディレクトリ
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# pkg-config libheif --modversion
1.15.1
# ./configure
...
Delegate library configuration:
  ...
  HEIC              --with-heic=yes             yes
  ...
# make
# make install
# convert --version
Version: ImageMagick 7.1.0-7 Q16-HDRI x86_64 2021-09-04 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib fontconfig freetype heic jng jpeg lzma png tiff x xml zlib
Compiler: gcc (7.3)

以上。
結構ハマったので誰かのお役に立てれば幸いです。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?