#author("2019-01-08T17:21:00+09:00","default:Miyashita","Miyashita")
#author("2019-01-08T17:30:05+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を使う.
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の指定をする.~
pdfnupを使うにはplatexが必要.~
また,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ファイルの操作が有効でないようだったので,書き換えた.
#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" />
}}
保存して閉じた後は問題なくできた.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes