タイトル通りですがImageMagicでheicファイルを.jpg変換したいのですが以下のエラーが発生してしまいエンコードできません。これはなぜでしょうか?参考サイトの参考にしましたがサンプル集のコマンドを打つとどれもエラーが出ます。
試したこと
ソースファイルからコンパイルしてインストール
環境
OS Ubuntu
ImageMagic version
$ convert -version Version: ImageMagick 7.1.0-32 beta Q16-HDRI x86_64 6b6e7f3ce:20220424 https://imagemagick.org Copyright: (C) 1999 ImageMagick Studio LLC License: https://imagemagick.org/script/license.php Features: Cipher DPC HDRI OpenMP(4.5) Delegates (built-in): fontconfig freetype jbig jng jpeg lzma png tiff webp x zlib Compiler: gcc (9.4)
参考サイト:https://qiita.com/yasubei/items/ad6dbf359b6a2f91ec85
mogrify -format jpg *.HEIC コマンド実行画面
$ mogrify -format jpg *.HEIC mogrify: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/738.
sh run.sh 実行画面
convert: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/738. convert: no images defined `IMG_0871.jpeg' @ error/convert.c/ConvertImageCommand/3325. convert: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/738. convert: no images defined `IMG_0872.jpeg' @ error/convert.c/ConvertImageCommand/3325. convert: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/738. convert: no images defined `IMG_0873.jpeg' @ error/convert.c/ConvertImageCommand/3325. convert: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/738.
run.sh
shell
1#!/bin/sh 2 3files="*" 4for filepath in $files; do 5 6b=".jpeg" 7convert $filepath ${filepath%.*}$b 8 9#echo $filepath ${filepath%.*}$b 10done
手元の ImageMagick では delegates に heic が含まれていて、問題なく変換できます。
$ convert -version
Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
> ソースファイルからコンパイルしてインストール
そちらの convert コマンドの delegates には heic が含まれていません。おそらく、ビルドの際に HEIC 対応のためのフラグをセットしなかったのではないでしょうか。
なるほど。追加のパッケージをインストールして適用したのですが今度は以下のエラーが出るのですがどうすればいいのでしょうか?
convert: Unsupported feature: Unsupported codec (4.3000) `IMG_0871.HEIC' @ error/heic.c/IsHEIFSuccess/135.
convert: no images defined `IMG_0871.jpg' @ error/convert.c/ConvertImageCommand/3325.
Ubuntu 22.04 の apt package です。
$ apt show imagemagick-6.q16
Package: imagemagick-6.q16
Version: 8:6.9.11.60+dfsg-1.3build2
Priority: optional
Section: universe/graphics
Source: imagemagick
Origin: Ubuntu
ありがとうざいます。しかし自分はライブラリをインストールすることで自己解決しました。
回答1件
あなたの回答
tips
プレビュー