スキャンした画像の編集(自炊)で使うアプリケーション

以下でスキャンした画像を編集するために利用しているアプリケーションをあげる。 環境は Ubuntu 12.10 で zsh を使っている。

アプリケーション

gimp
端を切り取るときに座標を調べる
qiv
画像を一枚ずつ表示する(非常に軽い)
imagemagick
変換に主に使う
geeqie
一覧を表示するときに使う
exiftran
JPEG を無劣化で回転する
tiffsplit
マルチページ tiff から画像を取り出す
pdfimages
PDF から画像を取り出す
irfanview
tiffsplit でうまくいかないマルチページ tiff から画像を取り出す

irfanview 以外は apt でインストールできる。

apt-get install gimp qiv geeqie imagemagick poppler-utils djvulibre-bin

Ubuntu 12.10 で irfanview を使う

まず、wine と winetricks をインストールする。

apt-get install wine winetricks

winetricks を使ってインストールしたのだが、途中でいくつか問題があった。

winetricks irfanview

とすればインストールするようなのだがうまくいかなかった。 まず、~/.cache/winetricks/irfanview/iview433_setup.exe がないと言われるので 最新のバージョンの iview435_setup.exe をダウンロードして iview433_setup.exe としてコピーする。

cp iview435_setup.exe ~/.cache/winetricks/irfanview/iview433_setup.exe

もう一度

winetricks irfanview

とすると次のようなエラーが出る。

Executing w_do_call irfanview
Executing load_irfanview
------------------------------------------------------
Working around wine bug 657 -- Installing mfc42
------------------------------------------------------
Executing w_do_call mfc42
Executing load_mfc42
Executing cabextract -q /home/USER/.cache/winetricks/vcrun6/vcredist.exe -d /home/USER/.local/share/wineprefixes/irfanview/dosdevices/c:/windows/syswow64 -F mfc42*.dll
------------------------------------------------------
mfc42 install completed, but installed file /home/USER/.local/share/wineprefixes/irfanview/dosdevices/c:/windows/system32/mfc42u.dll not found

なぜか mfc42.dll と mfc42u.dll が展開されない。 自分で展開してコピーする。 ここでは tmp ディレクトリを作成してその中に ~/.cache/winetricks/vcrun6/vcredist.exe を展開した。

mkdir tmp
cabextract -q ~/.cache/winetricks/vcrun6/vcredist.exe -d tmp
cp tmp/mfc42* ~/.local/share/wineprefixes/irfanview/dosdevices/c:/windows/syswow64
cp tmp/mfc42* ~/.local/share/wineprefixes/irfanview/dosdevices/c:/windows/system32

ここまでやって

winetricks irfanview

とすると irfanview のインストーラが起動する。途中で Chrome をインストールしないように注意する。

qiv から Gimp を起動する

qiv で 0-9 キーは qiv-command というコマンドを実行する。 これを利用して qiv で開いた画像を Gimp で開くようにする。

#!/usr/bin/env ruby

key, path = ARGV

def command_exec(cmd, *args)
  STDIN.reopen("/dev/null")
  STDOUT.reopen("/dev/null", "w")
  STDERR.reopen("/dev/null", "w")
  Process.spawn(cmd, *args)
end

case key
when '9'
  command_exec('gimp', path)
else
  puts "unrecognized command."
end

上のような ruby スクリプトを ~/bin/qiv-command に実行権限を与えて保存しておき、パスを通しておく。 サンプル をダウンロードして使うなら

wget http://transitive.info/file/ruby/qiv-comman
mkdir ~/bin
mv qiv-command ~/bin
chmod +x ~/bin/qiv-command

として ~/.zshrc(bash を使うなら ~/.bashrc)に

export PATH=$PATH:~/bin

を書き加える。

使用しているスクリプト

convert_to_djvu_few_colors.rb
色数が少ない djvu に変換するためのスクリプト(convert による減色を複数回にわけて実行する)
pick-out-arguments.rb
偶数または奇数番目の引数に分ける

適当なディレクトリに保存して使えば良いが、convert_to_djvu_few_colors.rb は

gem install filename

をインストールする必要がある。 ~/scripts に保存するなら

mkdir ~/scripts
wget http://transitive.info/file/ruby/convert_to_djvu_few_colors.rb
wget http://transitive.info/file/ruby/pick-out-arguments.rb
mv convert_to_djvu_few_colors.rb pick-out-arguments.rb ~/scripts

djvu ファイルの扱い方

マルチページ djvu の分割

マルチページの DjVu である doc.djvu をページ毎の djvu に戻すには djvused を使う。 全ページを分割するには zsh だと

input=doc.djvu; for i in {1..`djvused -e 'n' $input`}
djvused -e "select $i; save-page-with \"$(printf "%04d" $i).djvu\"" $input

のようにする。

マルチページ djvu の dpi の変更

5ページ目の dpi を 300 に変えるには

djvused -e "select 5; set-dpi 300; save" input.djvu

とする。

Tags of current page

, ,