#author("2019-06-10T22:31:21+09:00","","") #navi(../) * ImageMagickのconvertコマンドでエラーが出る場合の対処方法 [#faebcd09] convertコマンドを使って、大量のJPGファイルをPDF変換しようとしたら以下のエラーが出力されPDF変換に失敗しました。~ 本資料では、ImageMagickのconvertコマンドのエラー対処方法を記します。 #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) #contents * 使用したLinuxディストリビューション [#z7f2dadb] $ lsb_release -cd Description: Ubuntu 18.04.2 LTS Codename: bionic * 発生したエラー [#ed4335e0] 以下のエラーが発生し、JPGからPDF変換に失敗しました。 + convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c/ConnectPixelCacheServer/244.~ メモリ不足によるエラーになります。 + convert-im6.q16: not authorized~ セキュリティ対策でPDF変換が許可されていなかったため発生しました。 * /etc/ImageMagick-6/policy.xml を設定する [#u18a5197] 上記で発生したエラーは policy.xml の設定を変更することにより対応することができます。~ 他のディストリビューションやImageMagickのバージョンが異なる場合は、ImageMagick-6を読み替えてください。 * 設定ファイルを変更する前にバックアップ [#pf69cbba] 以下のコマンドで設定ファイルをコピーしてバックアップしてください。 sudo cp -p /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.org * /etc/ImageMagick-6/policy.xmlの加工について [#gcf1fe4b] 慣れたエディタで/etc/ImageMagick-6/policy.xmlファイルを開きます。~ 管理者権限が必要なので、sudoコマンドやrootになって作業を行ってください。 ターミナル(端末)を起動して、以下のようにして/etc/ImageMagick-6/policy.xmlを開いてください。 - nano sudo nano /etc/ImageMagick-6/policy.xml - vim sudo vim /etc/ImageMagick-6/policy.xml - gedit sudo gedit /etc/ImageMagick-6/policy.xml * onvert-im6.q16: DistributedPixelCache '127.0.0.1' ... 対応 [#g5b20ff3] 使用できるメモリサイズを設定します。~ 以下の例は一例です。エラーが消えないようであればメモリサイズを増やしてください。 +memoryの値を変更~ 修正前 <policy domain="resource" name="memory" value="256MiB"/> 修正後 <policy domain="resource" name="memory" value="2GiB"/> +diskの値を変更~ 修正前 <policy domain="resource" name="disk" value="1GiB"/> 修正後 <policy domain="resource" name="disk" value="2GiB"/> * convert-im6.q16: not authorized の対応 [#v73d5983] PDFを有効にするため、コメントアウトしました。~ PDF以外の場合は、対応する拡張子の行をコメントアウトしてください。 修正前 <policy domain="coder" rights="none" pattern="PDF" /> 修正後 <!-- <policy domain="coder" rights="none" pattern="PDF" /> --> 上記の設定を保存し、再度convertコマンドを実行してみてください。 * 上記の修正の差分のキャプチャ [#b7029f37] meldコマンドを使って差分を確認しました。~ #ref(01.png) #br 以上、ImageMagickのconvertコマンドでエラーが出る場合の対処方法でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)