Debian12へImageMagickをソースからインストールするシェルスクリプトを作成してみました。
シェルスクリプト実行後、Delegates一覧に
bzlib
djvu
fontconfig
freetype
heic
jbig
jng
jp2
jpeg
lcms
lqr
ltdl
lzma
openexr
png
raw
tiff
webp
wmf
x
xml
zlib
が表示されます。
また、キャッシュサイズを二つ指定できます。
以下のサイトからImageMagickソースファイルをダウンロードします。
https://imagemagick.org/script/install-source.php#linux
シェルスクリプト(debian12_imagemagick_install.sh)を新規作成します。
### 環境に合わせた修正箇所ここから ### 部分を修正します。
#!/bin/bash
# このシェルスクリプト実行前に、以下のofficial ImageMagickからImageMagick
# ソースファイルを / へダウンロードしておいてください。
# https://imagemagick.org/script/install-source.php#linux
# このシェルスクリプト実行前に### 環境に合わせた修正箇所ここから ### を修正
# してください。
### 環境に合わせた修正箇所ここから ###
# IMGMA_VER へImageMagick のバージョンを入れてください。
IMGMA_VER="7.1.1-15"
# /etc/ImageMagick-6/policy.xml 中<policy domain="resource" name="memory" value="256MiB"/> value値
MEM_VLU="2048"
# /etc/ImageMagick-6/policy.xml 中<policy domain="resource" name="map" value="512MiB"/> value値
MAP_VLU="4096"
### 環境に合わせた修正箇所ここまで ###
cd
sudo apt update ; sudo apt -y upgrade
# 1. インストール
magick --version &> /dev/null
if [ $? -ne 0 ] ; then
echo "imagemagick インストールします"
sudo apt -y install build-essential libjpeg-dev libpng-dev libtiff-dev libde265-dev libdav1d-dev libtool libmagickcore-dev checkinstall curl zip unzip tar libpng16-16 libltdl-dev libheif-dev libraw-dev libopenjp2-tools libopenjp2-7-dev libjpeg-turbo-progs libfreetype6-dev libopenexr-dev libwebp-dev libgif-dev make
tar xvzf ImageMagick.tar.gz
cd ImageMagick-$IMGMA_VER
./configure --with-modules --enable-file-type --with-quantum-depth=32 --with-jpeg=yes --with-png=yes --with-gif=yes --with-webp=yes --with-heic=yes --with-raw=yes --with-tiff=yes --with-openjp2 --with-freetype=yes --with-webp=yes --with-openexr=yes --with-gslib=yes --with-gif=yes --with-perl=yes --with-jxl=yes
make
sudo make install
# ダイナミックリンカランタイムバインディングを設定
sudo ldconfig /usr/local/lib
# /etc/ImageMagick-6/policy.xml バックアップ
sudo cp /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.org
else
echo "imagemagick インストール済みです"
# /etc/ImageMagick-6/policy.xml.org がない場合の処理
if [ ! -e /etc/ImageMagick-6/policy.xml.org ]; then
# /etc/ImageMagick-6/policy.xml バックアップ
sudo cp /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.org
fi
fi
# /etc/ImageMagick-6/policy.xml 初期化
sudo cp /etc/ImageMagick-6/policy.xml.org /etc/ImageMagick-6/policy.xml
# /etc/ImageMagick-6/policy.xml 修正
sudo sed -i 's/policy domain="resource" name="memory" value="256/policy domain="resource" name="memory" value="'$MEM_VLU'/g' /etc/ImageMagick-6/policy.xml
sudo sed -i 's/<policy domain="resource" name="map" value="512/<policy domain="resource" name="map" value="'$MAP_VLU'/g' /etc/ImageMagick-6/policy.xml
# インストールパス・バージョン表示
which convert
convert -version
convert -list format | grep HEIC
convert -list coder | grep HEIC
シェルスクリプト(debian12_imagemagick_install.sh)を実行します。
$ sudo chmod +x debian12_imagemagick_install.sh
$ ./debian12_imagemagick_install.sh
<省略>
/usr/local/bin/convert
Version: ImageMagick 7.1.1-15 Q32-HDRI aarch64 21298 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr png raw tiff webp wmf x xml zlib
Compiler: gcc (13.2)
AVIF HEIC rw+ AV1 Image File Format (1.16.2)
HEIC HEIC rw+ High Efficiency Image Format (1.16.2)
HEIF HEIC rw+ High Efficiency Image Format (1.16.2)
AVIF HEIC
HEIF HEIC



png を HEIC へコマンドで変換
sample_PNG.pngをHEICへ変換するコマンドは以下の通りです。
sample_PNG.heicが作成されます。
$ convert sample_PNG.png sample_PNG.heic
ファイル名 | ファイルサイズ |
---|---|
sample_PNG.png | 20039784バイト |
sample_PNG.heic | 949056バイト |
png を AVIF へコマンドで変換
sample_PNG.pngをAVIFへ変換するコマンドは以下の通りです。
sample_PNG.avifが作成されます。
$ convert sample_PNG.png sample_PNG.avif
ファイル名 | ファイルサイズ |
---|---|
sample_PNG.png | 20039784バイト |
sample_PNG.avif | 445545バイト |
png を JPEG-2000 へコマンドで変換
sample_PNG.pngをJPEG-2000 へ変換するコマンドは以下の通りです。
sample_PNG.jp2が作成されます。
$ convert sample_PNG.png sample_PNG.jp2
ファイル名 | ファイルサイズ |
---|---|
sample_PNG.png | 20039784バイト |
sample_PNG.jp2 | 15248301バイト |
png を jpg へコマンドで変換
sample_PNG.pngをjpg へ変換するコマンドは以下の通りです。
sample_PNG.jpgが作成されます。
$ convert sample_PNG.png sample_PNG.jpg
ファイル名 | ファイルサイズ |
---|---|
sample_PNG.png | 20039784バイト |
sample_PNG.jpg | 3315040バイト |
png を openexr へコマンドで変換
sample_PNG.pngをopenexr へ変換するコマンドは以下の通りです。
sample_PNG.openexrが作成されます。
$ convert sample_PNG.png sample_PNG.openexr
ファイル名 | ファイルサイズ |
---|---|
sample_PNG.png | 20039784バイト |
sample_PNG.openexr | 17257831バイト |
jpg を HEIC へコマンドで変換
sample_JPG.jpgをHEICへ変換するコマンドは以下の通りです。
sample_JPG.heicが作成されます。
$ convert sample_JPG.jpg sample_JPG.heic
ファイル名 | ファイルサイズ |
---|---|
sample_JPG.jpg | 3608822バイト |
sample_JPG.heic | 939557バイト |
jpg を AVIF へコマンドで変換
sample_JPG.jpgをAVIFへ変換するコマンドは以下の通りです。
sample_JPG.avifが作成されます。
$ convert sample_JPG.jpg sample_JPG.avif
ファイル名 | ファイルサイズ |
---|---|
sample_JPG.jpg | 3608822バイト |
sample_JPG.avif | 447340バイト |
jpg を JPEG-2000 へコマンドで変換
sample_JPG.jpgをAVIFへ変換するコマンドは以下の通りです。
sample_JPG.jp2が作成されます。
$ convert sample_JPG.jpg sample_JPG.jp2
ファイル名 | ファイルサイズ |
---|---|
sample_JPG.jpg | 3608822バイト |
sample_JPG.jp2 | 10320150バイト |
jpg を openexr へコマンドで変換
sample_JPG.jpgをAVIFへ変換するコマンドは以下の通りです。
sample_JPG.openexrが作成されます。
$ convert sample_JPG.jpg sample_JPG.openexr
ファイル名 | ファイルサイズ |
---|---|
sample_JPG.jpg | 3608822バイト |
sample_JPG.openexr | 3599011バイト |
HEICが扱えるImageMagickをインストールしたサーバーで稼働しているNextCloudにてHEICプレビューできるようにするには、NextCloudのconfig.phpに以下を含ませてください。
その後、apache/nginxを再起動します。
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\TXT',
1 => 'OC\\Preview\\MarkDown',
2 => 'OC\\Preview\\OpenDocument',
3 => 'OC\\Preview\\PDF',
4 => 'OC\\Preview\\MSOffice2003',
5 => 'OC\\Preview\\MSOfficeDoc',
6 => 'OC\\Preview\\PDF',
7 => 'OC\\Preview\\Image',
8 => 'OC\\Preview\\Photoshop',
9 => 'OC\\Preview\\TIFF',
10 => 'OC\\Preview\\SVG',
11 => 'OC\\Preview\\Font',
12 => 'OC\\Preview\\MP3',
13 => 'OC\\Preview\\Movie',
14 => 'OC\\Preview\\MKV',
15 => 'OC\\Preview\\MP4',
16 => 'OC\\Preview\\HEIF',
17 => 'OC\\Preview\\HEIC',
),