Book Image Processor
Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
LICENSE
README.md

README.md

bkimgproc - Book Image Processor

What's this?

bkimgprocは、書籍のような紙のまとまりの画像に対して、リサイズなどの処理を加え、 PDFやzipなどの形式にまとめるツールです。

以下のような機能を備えています。

  • 横向きスキャンデータの回転
  • 余白の自動カット
  • 白レベル自動判定による白レベル調整
  • テキストのボールド化

標準プラグインでは、以下の処理を行います。

[PC向け]

  • PDF出力
  • 白黒レベル調整

[kobo向け]

  • cbz (zip) 出力
  • リサイズ
  • 余白自動カット
  • 白黒レベル調整
  • 本文ボールド化

必要環境

  • bash (+sed, awkなどshell scriptで使うようなツール群)
  • ImageMagick
  • sam2p (PDF出力で利用)
  • pdftk (PDF出力で利用)
  • zip

DebianやUbuntuであれば、以下で使えるようになると思います。

# apt-get install imagemagick sam2p pdftk zip

初期設定

初期設定として、以下を実行します(ディレクトリが作成されます)。

$ bin/setup.sh

使い方

1) プロジェクトディレクトリの作成

data/incomingに、適当なディレクトリをひとつ作成します。 (名称は、出力結果には関係ないので、利用される方が識別できる名前であれば、 なんでもかまいません。

data/
  incoming/
    mybook/

2) ソースファイルの配置

作成したディレクトリの中に、ソースファイル(.pdf or .jpg)を配置します。

このとき、ファイル名は [数字orハイフンorアンダースコア] + [オプション文字] + "." + [拡張子] とします。

オプション文字は、「回転文字」と「種別文字」があり、それぞれ以下が指定可能です。

[回転文字]

  • r: 右開き (綴じられていないほうを前にしてスキャンすることを想定)
  • l: 左開き

[種別文字]

  • (無指定): カラー
  • m: モノクロ
  • t: テキスト(白黒)

※初期版では、mとtに違いはありません。

<例>

data/
   incoming/
      mybook/
        001.jpg    -- 表紙
        002.jpg    -- カバー
        003t.pdf   -- テキストページ群
        004rm.pdf  -- モノクロ(絵)ページ群、ただし横向きソース

なお、白レベル判定は、ここで配置したファイルの範囲で行われるため、ある程度の枚数を まとめてPDFにされることをおすすめします。

3) 名前PDFファイルの配置

出力ファイル名を指定するためのファイルを配置します。

data/
  incoming/
    mybook/
      001.jpg
      002.jpg
      003t.pdf
      004rm.pdf
      漫画でわかるbashプログラミング.pdf

このように名前PDFを配置すると、data/books/に、以下のようなファイルが生成されます。

pc/漫画でわかるbashプログラミング_pc.pdf
kobo/漫画でわかるbashプログラミング_kobo.cbz

中身は利用されないため、空でも構いません。

4) r2l.txtファイルの配置(任意)

r2l.txtを配置すると、PDFファイルに右開きの情報を埋め込みます。

5) 実行

必要に応じて、複数のプロジェクトディレクトリを作成後、bin/convall.shを実行します。

$ bin/convall.sh

6) 取り出し

以下のフォルダに出力されるため、結果を取り出します。

data/
   books/
     (プラグイン名)/
     pc/
     kobo/

なお、元ソースは、data/doneに移動されます(失敗の場合はdata/failed)。

注意

  • 「名前PDF」以外には、パスにスペースを含めないでください。

dataディレクトリの構造

dataディレクトリの構造は、以下の通りです。

data/
  incoming/    プロジェクトディレクトリ配置場所
  working/     処理中プロジェクト移動先
  failed/      失敗プロジェクト移動先
  done/        成功プロジェクト移動先
  books/       処理結果配置先

カスタマイズ方法

実際に画像を出力する部分や、アーカイブする部分は「プラグイン」という形で分離しています。 そのため、決まった場所を書き換えたり、プラグインを増やしたりすることで、出力結果を カスタマイズすることが可能です。

プラグインの構造は、以下の通りです。

lib/
    plugins/
      (プラグイン名)/
        archive.sh     -- ファイルをまとめるスクリプト
        options/       -- 種別ごとの画像変換スクリプト
          _.sh           -- カラー用
          t.sh           -- テキスト用
          m.sh           -- モノクロ用