3

ドキュメント管理システムには、多数のマルチページ TIF ファイル (主にドキュメント スキャン) が含まれています。さまざまな歴史的問題とエンド ユーザーの誤解により、これらの多くは必要以上に大きくなっています (たとえば、必要以上に高い解像度でスキャンされたり、圧縮せずに保存されたりします)。

私が見ているのは、これらのドキュメントのいくつかを調べて、貴重なストレージスペースを取り戻すためにいくつかの最適化を行うことです (私はすでに、非常に簡単にぶら下がっている果物を取り出しただけで 25GB を回復しました)。

これまでは ImageMagick と Irfanview を組み合わせて使用​​してきましたが、現時点ではかなり労力がかかるため、このプロセスをもっと自動化したいと考えています。私はいくつかのスクリプトを作成することに問題がありましたが、残念ながら、問題の TIF の性質に問題があることが判明しています。

特に、それらの大部分には混合ページ形式が含まれています。基本的なレター ページ用のバイレベル/1 ビット ページと、画像/地図/図面用のフル カラー RGB ページ。ほとんどのドキュメントにはこれらのタイプが混在しており、常に特定の順序であるとは限りません (実際、これら 2 つの形式の間を行き来する場合があります)。

理想的には、2 値ページでグループ 4 ファックス圧縮を使用し、カラー ページで JPEG 圧縮を使用したい (したがって、ImageMagick で -compress group4 / -compress jpeg フラグを使用する) 方法はないようです (私が知ることができる - 私はIM の経験が限られている場合) を使用して、ページ形式ごとに圧縮を設定します。これが可能かどうか誰にもわかりますか?または、この機能を備えたスクリプト可能なツールを推奨できる人はいますか?

Irfanview はページごとの圧縮を行うことができますが、GUI を使用してページごとに手動で設定する必要があり、これは明らかに理想的ではありません。

どんなヒントでも大歓迎です!

4

1 に答える 1

3

あなたが説明した特性(混合形式、異なる圧縮スキーム、異なるページの色空間...)を示すサンプルTIFFファイルがないので、ここに最初のショットがあります。

マルチページ TIFF の処理を​​自動化する[n]には、ファイル名に 0 から始まるインデックス番号を付けることで、各画像に個別にアクセスできることを知っておく必要があります。

また、ImageMagick escpape ショートカットのリストを調べて、ファイルから興味深いビットを自動的に抽出するコマンドを作成しidentify -format <%escapestrings>、それを使用してさらに処理を行う必要があります。

identifyしたがって、カスタマイズされた-format文字列を使用して を実行することにより、さまざまな TIFF ページ間のさまざまな特性を識別することからプロジェクトを開始します。たとえば、次のようになります。

for i in $(seq 1 $(identify -format %n multipage.tiff)); do 
  identify -format \
    "scene-number:%s \
     image-width-in-pixels:%w \
     image-height-in-pixels:%h \
     x-resolution:%x \
     y-resolution:%y \
     image-depth:%z \
     imageclass+colorspace:%r \
     image-compression-type:%C \
     image-compression-quality:%Q \
     page-width:%W \
     page-height:%H" \
   multipage.tiff[$i]; 
 done

(教育上の理由から、意図的に必要以上に冗長にしています...)

それに基づいて、必要なことを実行するシェル スクリプトを考え出すことができるはずです。

于 2012-08-09T22:24:39.603 に答える