ImageMagickのconvertコマンドで「cache resources exhausted」エラーの解消方法

複数の画像ファイルをPDFに変換などする際に、ImageMagickのconvertコマンドを使用しています。
また、jpg形式からpng形式に画像を変換したりする際にもconvertコマンドは良く使用します。
その際、「cache resources exhausted」エラーが出ることがたまにあります。
これは、メモリキャシュが枯渇したという意味でImageMagickで使用するメモリ使用量を上げてあげれば解決します。
メモリ使用量をどこで設定しているかというと、「policy.xml」ファイルで設定しています。

Ubuntu(18.04.1 LTS)の場合、以下の場所にあります。(windows 10上のUbuntuも同じ場所にあります。)

/etc/ImageMagick-6/policy.xml

もし場所が分からなければ、以下のコマンドで検索してみてください。

$ find /etc | grep "policy.xml"
または
$ find /usr | grep "policy.xml"

編集する際は、su権限が必要なので、sudo vim policy.xmlなどのコマンドで編集してください。

<policy domain="resource" name="memory" value="256MiB"/>

となっている箇所がありますので、メモリの値を256MiBから1GiBなどに変更し、保存しましょう。

その後、再度convertコマンドを使用してみてください。
まだ、「cache resources exhausted」エラーが発生する場合は、メモリの値を2GiBなどに増やしてみましょう。

Windows 10でも、Ubuntuを起動し、convertコマンドが利用できるようになり、便利な時代になりました。