Lifelog~毎日保存したログから見えてくる個性

第42回本のデジタル化と2ページビューアー

求める電子書籍端末を試作する

前回スキャンして日付順のフォルダに保存するところまで説明しました。今回は、保存したあとに行う閲覧作業と、専用に試作した電子書籍ビューアーを紹介します。

専用ビューアーといっても、じつは以前から使用しているPictureViewを2ページモードで実装し直したものです。通常の写真の場合には、ランダムに回転して、付箋風にExif情報を表示するのがPictureViewの標準モードです。写真を表示するときには、このランダムな感じが自然に見えて、とても気に入っています。

図1 写真ビューアーであるPictureViewのデジタル写真モード
図1 写真ビューアーであるPictureViewのデジタル写真モード
自分で撮影した写真は、写真のように枠をつけ、Flickrにアップロードできるように、付箋にFlickrアップロード用のチェックボックスをつけて表示する。

PictureViewは多重起動のできるSDI式のアプリケーションで、複数の写真を同時に表示することも可能です。PictureViewには、書籍ビューアーに必要と考えられる手書きメモ機能とテキストメモ機能があり、わざわざ新規に開発する必要がないのは開発効率を高めていると思います。

図2 写真ビューアーであるPictureViewの新聞写真モード
図2 写真ビューアーであるPictureViewの新聞写真モード
新聞記事を表示するときには、その記事の写真をPictureViewで表示している。無造作に記事のとなりに表示する。このときもランダムに回転している。

PictureViewを電子書籍ビューアーに転用するためには、ふたつの追加機能が必要です。 ひとつは、正位置に表示することです。1枚の(あるいは数枚程度の)写真を表示するときにはランダムに回転していても自然ですが、本の場合、ページをめくる度に回転して表示すると、大変不自然に感じられます。というか、ページとしして片側を固定している本で回転して表示することはありえないです。そこで、本モードでは正位置の回転しない表示を行うことにしました。

ふたつめは、2ページずつ表示することです。既存の電子書籍端末で表示面積とボディサイズのトレードオフで、⁠1ページずつ表示するか」⁠2ページを縮小表示するか」のどちらかを考えることになりますが、筆者が使用しているのは21型のディスプレイで、単純計算でKindleやiPadの倍のサイズですから、2ページ表示してもKindleやiPad程度には見えることになります。

図3 PictureViewの2ページモード(1)
図3 PictureViewの2ページモード(1)
PictureViewの2ページモードで、講談社のPR誌「本」を表示したところ。文章を読むためには、2ページ見開きを見やすいサイズで表示できることが前提でしょう。
図4 PictureViewの2ページモード(2)
図4 PictureViewの2ページモード(2)
PictureViewの2ページモードで、双葉社の「ルパン三世マガジン」を表示したところ。
図5 比較のためのWebで見かけたブックブラウザの例
図5 比較のためのWebで見かけたブックブラウザの例
デジタルの書籍をWebで提供しているのですが、画面を最大化しても、表示部分は小さいままで、1行の文章を一度にぜんぶ読み切ることはできません。あまりにもストレスでしょう。

デジタル化からフォルダへの移動/転送

デジタル化したファイルは、スキャン専用マシンの作業フォルダ上に、JPEGファイルとして一時的に保存します。1冊の本で200枚程度のJPEGファイルを作成します。このフォルダには、ISBNから自動的に取得したフォルダと、そのフォルダにJPEGファイ ルを移動するスクリプトファイルを生成しています。

図6 作業フォルダ上に多数のJPEGファイルができる
図6 作業フォルダ上に多数のJPEGファイルができる
デジタル化したファイルは、スキャン専用マシンの作業フォルダ上に、JPEGファイルとして一時的に保存している。
図7 スクリプトのダブルクリックでフォルダに移動する
図7 スクリプトのダブルクリックでフォルダに移動する
スクリプトは複数あり容易に使い分けられるので、デジタル化の際には、カバー類をまとめて行い、そのあと本文を行うなど、サイズごとに作業を連続して行うと効率的。

デジタル化が終わると、メインマシンへの転送です。メインマシンへの転送は、その日のフォルダの下に、フォルダの日付を自動的に認識して自動的に行います。

図8 メインマシンへの転送
図8 メインマシンへの転送
その日のフォルダの下に、書籍ごとのフォルダを作成して最終保管場所としている。日付の下におくのは、日記などから検索するときの整合性を保ちやすいため。

転送した直後は、スキャナの構造上の関係で、カバーや表紙は横に倒れています。PictureViewを使って表示しながら回転します。

本の表示で重要なことは、カバーや帯などのつきものの扱いでした。カバーや帯は普通のページとはサイズが異なるため、スキャナの構造上、デジタル化後に回転処理を行う必要があります。

そこで、PictureViewに回転機能を実装しました。

図9 カバーをPictureViewを使って表示する
図9 カバーをPictureViewを使って表示する
PictureViewのポップアップメニュー。書籍系として使うメニューには、⁠回転」系と、扉にしてページを割り振る、奥付として登録などがある。

回転後のカバーファイルは、正位置になります。

図10 回転後のカバーファイル
図10 回転後のカバーファイル
表示は正位置になる。

モードレスと本モードに必要なこと

PictureViewひとつで、写真モード(1枚だけを回転して表示)と本モード(2ページずつ無回転で左右に分割して表示)をモードレスに自動で表示し分けるのにはタグが必要です。写真のときには写真モード、本のときには本モードを自動認識します。タグづけをどう簡素化するかですが、スキャン時に本のタイトルには、本のタイトルであるタグを自動的につけることにしました。これで、スキャンして起動すれば、本のときには自動的に本モードで表示できます。ぜんぶのシステムを自前で作っているメリットです。

2ページビューアーとしての特徴は、右ページを右側に表示する機能を実現した点にあります。2ページビューアーを単純に実現しようとすると、1ファイル目を右側に、2ファイル目を左側に(あるいはその逆に)自動的に割り振るので、ページの左右が逆転してしまうことがあります。Googleのブックビューアーなどで起きています。

不自然な左右の逆転を回避するために、PictureViewでは、扉ページに着目して、扉ページのファイルを起点として左右ページにファイルをタグづけして割り振ることにしました。

図11 左右の逆転を起こさないようにするための処理
図11 左右の逆転を起こさないようにするための処理
扉ページで、⁠このページを扉にしてページを割り振る」メニューを選択すると、このページを扉にしてページを割り振ることができる。これにより、JPEGファイル群はページという概念をもち、左右のページ(奇数偶数ページ)をそれぞれ左右に表示する。
図12 左右ページを割り振ったあとの表示
図12 左右ページを割り振ったあとの表示
7ページが左側に来ている。中央に空間が開いているのは今後の調整が必要な部分。

タグにより、扉ページさえ固定すれば、左右ページが逆転することはなくなります。現在はこの扉ページからのタグづけとカバーの回転を手動で行っています。近い将来、これも自動化しようと考えています。ファイルの縦横のサイズを取得して縦横比を算出し、 色数を取得すれば、だいたい自動化できるのではないか、と考えているところです。アンドゥ機能は実装ずみなので、自動化に失敗したら手動で直すことは容易です。以上により、複数のjpegファイルからなる「書籍」を本のように自然に左右ページをきちんと表示し、手書きとテキストでメモを取ることのできる書籍ビューアーを実現しました。

今後、現在表示しているページ以外を重なったページとして表示する機能、重なったページをクリックすると該当ページにジャンプする機能、ページの厚みによってセンターが次第に右から左に移動する機能、ページの中央に書籍のように影をつける機能、ページを抜き出して比較する機能、ページに書き込みするペンの色を設定する機能、洋書対応などを実装する予定です。

図13 ページ抜き出しのイメージ。
図13 ページ抜き出しのイメージ
卓上でリアルな2冊の書籍で、関連する項目を比較しているところ。この場合、2冊の書籍を同時に開いて、ページ同士を並べている。このような作業をデジタルでも自由に行えるようにしたいと考えているところ。

おすすめ記事

記事・ニュース一覧