convert (imagemagick) メモ

様々なオプションがあり,機能も豊富で網羅はできない.
用途ごとに整理して並べる.

画像の結合

  • 水平結合
    convert +append image_1.png image_2.png out.png

  • 垂直結合
    convert -append image_1.png image_2.png out.png

画像(PDF)の回転

90度回転するときは

convert -rotate 90 image_org.png image_rot.png

mogrifyを使うと,元のファイルに上書きされる.

mogrify -rotate 90 image.png


画像をPDFに変換

  • 1ページ当たり1枚の画像
    image_1.png 〜 image_N.png (Nは自然数)とナンバリングされた画像を PDF に変換すると想定.
    下記は一例.
    convert image_*.png -geometry 50% -page A4+3+15 out.pdf
    使ったり使わなかったりするオプション
    -geometry: 拡大縮小の比,-resize と一緒には使わない.
    -resize: 500x500 のように貼る画像のサイズを設定できる.自由は利くけどだるい.
    -page: ページサイズ,A4 のようにもできるし,595x842 とかでもOK.普通は A4.
           A4+X+Y とすると,横に +X (右に X ピクセル),縦に +Y (上に Y ピクセル)左下端からずらして画像を配置する.
           -page オプションがない場合,ページのサイズは -geometry や -resize に依存する.

  • 1ページ当たり n 枚(複数枚)の画像
    1ページに1枚ずつ出力後,pdfnup を使う.
    pdfnup を使うには platex が必要.
    convert image_*.png tmp.pdf
    pdfnup --nup 2x3 --no-landscape --paper a4paper --outfile out.pdf tmp.pdf
    上記は tmp.pdf を convert で作成し,そのページを 2x3 (横x縦)で配置して新たな A4 サイズの out.pdf を作成する.
    convert の時に --page オプションを指定し A4 にしてしまうと,画像によっては無駄な余白ができるため,pdfnup で A4 の指定をする.
    また,eps を1ページにまとめる場合はは余白がなくなってしまうので,convert の時点で白のフレームを追加しておく.
    convert image_*.png -mattecolor "#fff" -frame 50x50 tmp.pdf
    pdfnup --nup 2x3 --no-landscape --paper a4paper --outfile out.pdf tmp.pdf


montage でも同じようなことができるが画質の調整が面倒だった.

エラー対処メモ

convertを使おうとしたら not authorized というエラーが出た.

$ convert -density 300 eta000.eps eta000.png
convert-im6.q16: not authorized `eta000.eps' @ error/constitute.c/ReadImage/412.
convert-im6.q16: no images defined `eta000.png' @ error/convert.c/ConvertImageCommand/3258.

使用していたバージョンは以下の通り.OSはUbuntu 18.04LTS.

$ convert -version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib

stack overflow を参考に調べると, /etc/ImageMagick-6/policy.xml で PostScript ファイルの操作が有効でないようだったので書き換えた.

cd /etc/ImageMagick-6/
sudo cp -p policy.xml policy.xml.bak
sudo vim policy.xml
  <!-- original -->
  <!-- <policy domain="coder" rights="none" pattern="PS" /> -->
  <!-- 修正後 -->
  <policy domain="coder" rights="read|write" pattern="PS" />

保存して閉じた後は問題なくできた.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2019-01-08 (Tue) 08:21:01 (582d)