hack のためのネタ帳, etc,,,

やりたいこと

B4 及び B3 の紙面を A4 のスキャナでスキャンしたので、1面2ページ割付(2up)、1面4ページ割付(4up)、つまるところ、いわゆる Nup 割付をしたい。

方法

縦か横に並べる

縦または横に並べたい場合は、convert コマンドに ±append オプションを付けると - で縦 + で横に結合出来る。
# 縦に結合する場合
convert -append src1 src2 ... srcN dst
# 横に結合する場合
convert +append src1 src2 ... srcN dst
元画像サイズのまま結合されるため、繋げた枚数分サイズが増える。

オプション
  • ±append : 並べる方向(- 縦、+ 横)
  • -geometry WxH : 1 枚当たりのサイズ
    • デフォルトは各画像のサイズ
    • % 指定すると各画像毎に拡縮される
  • -gravity {north|east|west|south|center} : WxH 中で snap する位置
  • -splice UxV : 水平、垂直方向に追加する余白 (画像枚数 nx,ny として合計で [U,V]*([nx,ny]+1) の余白が追加される)

マトリクス状(行列状)に並べる(タイリング)

M行N列(横x縦 = NxM)でマトリクス状に結合したい場合は montage コマンドに -tile NxM オプションを与える。
montage -tile NxM -geometry WxH+U+V src1 src2 ... srcN dst
src は左上から右に向かって順に埋められる。

オプション
  • -tile NxM : 並べる枚数(横×縦)
  • -geometry WxH+U+V : 1 枚当たりのサイズと片側1辺当たりの余白
    • Ubuntu 20.04.2 LTS のデフォルト値は 120x120+4+3 (1枚当りの画像サイズ 120x120 に加えて左右に 4 ピクセルずつ上下に 3 ピクセルずつの余白が付いて、1タイル当たり 128x126)
    • % 指定すると全画像の最大値が基準になる
  • -gravity {north|east|west|south|center} : WxH 中で snap する位置

補足

  • -gravity には northwest のような設定をすることで全 9 箇所の snap 位置を指定可能
  • -border を付ける場合 -geometry よりも先に付けると border を付与した後で拡縮される
  • サイズ指定は "WxH^" のようにすると短辺が内接するよう調整され長辺側は拡張される。"WxH>" とすると長辺基準になるらしいがこれは "WxH" と同じかな?
  • -resize "WxH^" -gravity center -extent "WxH" のようにすると短辺を最大化してはみ出た部分を crop 出来る。

公式ページ等

関連

参考

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます