|
何年も前、古本屋の棚を眺めていたところ、Specialized Systems Consultants 発行の「UNIX System Command Summary for Berkeley 4.2 & 4.3 BSD」という小冊子に偶然出会いました。20年近く前の本でしたが、現代の Linux や BSD にもほぼ応用できる内容だったので、好奇心から購入しました。 当時も今も、私は幸せです。1986年に書かれた小冊子は2016年でもまだ意味を持ちますが、同じ棚にあるプロプライエタリなオペレーティングシステムに関する本は印刷する価値がないように思えます。(考えてみてください。ゾンビの黙示録を生き残れるテクノロジーは何でしょうか?)この小冊子は何年も私の本棚にありました。しかし、ふとデジタル保存しておく価値があるかもしれないと思い、スキャンしてCBZ eBookを作成することにしました。 Skanliteを使ったスキャンは簡単ですが、時間がかかります。しかし、スキャンを終えてみると、一部のページがあまり滑らかでないことに気づきました。 目次や用語集を含むテキストページが曲がったり歪んだりしている 印刷においては、これは位置合わせの問題と呼ばれ、印刷されたコンテンツがページ上に正しく配置されていないことを意味します。 イメージマジックImageMagickは、ターミナルベースの非対話型グラフィックエディタです。非グラフィカル環境(プレーンテキストターミナルなど)でグラフィックを編集するのは直感的に分かりにくいように思えるかもしれませんが、実際には非常に一般的です。例えば、Webアプリケーションにプロフィール写真として画像をアップロードすると、アプリケーションサーバー上のスクリプトがImageMagickまたはそのライブラリを使用して画像を処理することがあります。非対話型エディタの利点は、サンプル画像に対して実行したいアクションを指定し、ボタンをタッチするだけで、その効果を他の何百もの画像に適用できることです。 ImageMagickは、豊富な機能とそれらを組み合わせて目的の効果を得る方法を理解する時間をかければ、他のグラフィックエディタと同様に強力です。今回は、傾いたページを回転させたいのですが、ImageMagickのドキュメントを検索したところ、必要な解決策を表すImageMagick用語が「skew correction(傾き補正)」であることがわかりました。他の用語との一貫性を保つことは、特に知らないことを扱う場合は難しいものです。そのため、ImageMagick(または他のツール)を使用する際は、問題や解決策を説明する際に使用する用語が他の用語と異なる場合があることを覚えておいてください。 ImageMagick を使用して曲線テキストを含む画像を修正するには: $ page_0052.webp を変換 -deskew25% fix_0052.webp 結果は次のとおりです。 同じページのテキストが、正しく配置された状態になりました 修正完了!残りの55ページに適用して傾いたページを修正しますが、既にまっすぐになっているページには何も影響しません。つまり、しきい値の設定により、調整が不要なページにはこのコマンドを実行しても問題ありません。 ImageMagickを使った画像の切り抜き傾きを修正した後、誤って文字を切り取ってしまうのを防ぐために各ページを必要以上にスキャンしたため、修正したページをトリミングするのが理にかなっていると感じました。ある程度の余白を残すのは構いませんが、以前ほど多くは残しません。このウェブサイトではImageMagickの「トリミング」機能を頻繁に使用しているため、このオプションには慣れています。しかし、各ページをどのようにトリミングするかを決める必要がありました。 まず、画像のサイズが必要です。 $ fixed_0052.webp を識別する 寸法がわかったので、どれくらいのピクセル数の損失を許容できるかを概算できました。何度か試した結果、以下のようになりました。 fix_0052.webp を変換 -重力中心-クロップ950x2450 + 0 + 0 crop_0052.webp 完璧にフィットしたわけではありませんでしたが、冊子の他の画像に適用してみると、それが重要だと分かりました。これらのページの内容やスキャナの配置は様々だったので、各ページに少しだけ余白を設けておきました。 修正してトリミングした画像は次のとおりです。 同じページのテキストに、以前の修正が適用され、ページの周りの曲がった白い余白が切り取られました。 オープンソースを使用して画像を一括編集するImageMagickの優れた点は、画像を復元するための式を一度決めてしまえば、同じ修復が必要なすべての画像にその復元を適用できることです。私はGNU Parallelを使ってこれを実行しました。CPUコアをすべて使って、数百ページにわたる画像修正を完了しました。時間はかからず、結果はそれを物語っています。さらに重要なのは、UNIXの歴史に残る興味深い作品のデジタルアーカイブができたことです。 |