Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2826

自炊した連番画像ファイル群の前処理を ImageMagick で行う(回転・切除)

$
0
0

どうも、自炊1初心者です。
今日は私が自炊した画像ファイルを色調整・圧縮するより前にやる、簡単な処理のやり方についてご紹介しようと存じます。
ImageMagick についている magickmogrifyコマンドと、zshを使います(多分 bashでも可能です)。
mogrifyは複数画像の一括処理用のコマンドです。

環境

Windows10 64bit, msys2上のzsh, ImageMagick Version 7.0.10-29 Q16

連番の画像ファイルをまとめて回転させて向きを正す

書類をスキャナの皿に載せる向きを間違えたり横向きに載せていると、すべての画像が上下逆さまだったり、偶数ページ/奇数ページが横向きでそれぞれ逆を剥いていたりすることがあります。
mogrify -rotate <回転角度> <ファイル名>...で画像をまとめて回転させることができます。
mogrifyブレース展開を使います。

$ mogrify -rotate 180 {001..100}.bmp    # 100個のbmpファイルを180度回転させる$ mogrify -rotate 90 {001..100..2}.bmp  # 奇数番のbmpファイルを右に90度回転させる$ mogrify -rotate-90{002..100..2}.bmp # 偶数番のbmpファイルを左に90度回転させる

ノドを切り落とす

もしかしたら裁断機の刃が痛んでいるのかもしれませんが、私は切るのが下手で裁断面が見開きで見たとき悪目立ちします2。そこで裁断面(本のノドにあたる)を20ピクセル程度カットして悪目立ちを抑えます。

コミックの場合はノドのギリギリまで絵があるのでカットしたくはないのですが、文字だけの書籍ならノドは白紙なのでガタガタの切断面をまっすぐに切断することができます。

mogrifyを使うと直接ファイルを加工してしまいますが、今回は念のため、magick (convert)コマンドを使って、加工したファイルを別に outディレクトリに出力します。
奇数ページと偶数ページでノドの位置が逆なので注意します。
-chopオプションで端から 20ピクセル切り落とす例です。数値は調整してください。
-gravityでどこを切り落とすか指定します。-gravityで指定できる値は magick -list gravityで確認できます。

magick(or convert) <変換前の画像名> [ -gravity {position} ] -chop {width}x{height} <変換後の画像名>

$ mkdir out
# 001~099までの奇数ページ (West で左側を切り落とす)$ seq-f'%03g.bmp' 1 2 99 | xargs -I{} magick {}-gravity West -chop 20x0 out/{}# 002~100までの偶数ページ (East で右側を切り落とす)$ seq-f'%03g.bmp' 2 2 100 | xargs -I{} magick {}-gravity East -chop 20x0 out/{}# ※スキャンによって偶数奇数の処理を逆にしなければいけないかもしれません。要確認

seq [-f <FORMAT>] <FROM> [[<STEP>] <TO>]
連番を生成。seq の FORMAT は一般的な printf と違って数字は %dの代わりに %g

xargs -I<変数名> <コマンド>
パイプから渡ってきたデータを変数に代入してコマンドをそれぞれ逐次実行する。
今回は変数名に {}を指定したので {}にファイル名が代入されて実行される。

最後に

この単純な処理の後、画像に問題がないか確認してから圧縮や色味の調整など細かい調整をします。

参考リンク


  1. 書籍などを裁断して、スキャナで取り込み、デジタルデータにする行為。 

  2. また、カッターでコミックを切り裂くときにはこまめに刃を更新しないと糊で切れ味が悪くなりひどい切り跡になります。カッターの刃はどうせ安いのだからケチらずすぐ取り換えましょう。 


Viewing all articles
Browse latest Browse all 2826

Latest Images

Trending Articles