#author("2019-09-08T13:52:30+09:00","default:Miyashita","Miyashita") #author("2022-05-09T01:09:38+09:00","default:Miyashita","Miyashita") *convert (imagemagick) メモ [#nd2407b4] 様々なオプションがあり,機能も豊富で網羅はできない.~ 用途ごとに整理して並べる.~ **画像の結合 [#qb135299] -水平結合~ #codeprettify(lang-bash){{ convert +append image_1.png image_2.png out.png }} ~ -垂直結合~ #codeprettify(lang-bash){{ convert -append image_1.png image_2.png out.png }} ~ **画像(PDF)の回転 [#qcae4b3a] 90度回転するときは #codeprettify{{ convert -rotate 90 image_org.png image_rot.png }} mogrifyを使うと,元のファイルに上書きされる. #codeprettify{{ mogrify -rotate 90 image.png }} ~ **画像をPDFに変換 [#sffba3c2] -1ページ当たり1枚の画像~ image_1.png 〜 image_N.png (Nは自然数)とナンバリングされた画像を PDF に変換すると想定.~ 下記は一例. #codeprettify(lang-bash){{ 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 が必要.~ #codeprettify(lang-bash){{ 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 の時点で白のフレームを追加しておく. #codeprettify(lang-bash){{ convert image_*.png -mattecolor "#fff" -frame 50x50 tmp.pdf pdfnup --nup 2x3 --no-landscape --paper a4paper --outfile out.pdf tmp.pdf }} ~ montage でも同じようなことができるが画質の調整が面倒だった.~ ~ **エラー対処メモ [#da7fa3e2] 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>https://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453?rq=1]] を参考に調べると, /etc/ImageMagick-6/policy.xml で PostScript ファイルの操作が有効でないようだったので書き換えた. [[stackoverflow>https://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453?rq=1]] を参考に調べると, /etc/ImageMagick-6/policy.xml で PostScript ファイルの操作が有効でないようだったので書き換えた.(自己責任で) #codeprettify{{ cd /etc/ImageMagick-6/ sudo cp -p policy.xml policy.xml.bak sudo vim policy.xml }} #codeprettify{{ <!-- original --> <!-- <policy domain="coder" rights="none" pattern="PS" /> --> <!-- 修正後 --> <policy domain="coder" rights="read|write" pattern="PS" /> }} 保存して閉じた後は問題なくできた.