#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" />
}}
保存して閉じた後は問題なくできた.

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