複数の画像ファイルを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
コマンドが利用できるようになり、便利な時代になりました。