2012-06-12 79 views
3

我們的文檔管理系統中包含大量多頁TIF文件(主要是文檔掃描)。通過各種歷史問題和最終用戶的誤解,大量這些問題比他們需要的要大得多(例如,他們將以比所需更高的分辨率進行掃描,或者在沒有壓縮的情況下進行存儲)。通過命令行壓縮不同頁面格式的多頁TIF文件

我一直在研究的是通過一些這些文件,並做一些優化,以索回一些有價值的存儲空間(我已經恢復25GB只是拿出非常低的掛果)。

到目前爲止,我一直在使用ImageMagick和Irfanview的組合,但我真的很想將這個過程自動化得更多,因爲此刻它非常勞動密集。我在創建幾個腳本方面有過一些破解,但不幸的是,所討論的TIF的性質證明是有問題的。

特別是,它們中的大多數包含混合頁面格式;基本字母頁面的Bilevel/1位頁面和圖像/地圖/計劃的全色RGB頁面。大多數文檔都會混合使用這些類型的文檔,但並不總是以任何特定的順序(實際上它們可能會在這兩種格式之間來回切換)。

理想情況下,我想在彩色頁面上使用組4傳真壓縮和彩色頁面上的JPEG壓縮(所以在ImageMagick中使用-compress group4/-compress jpeg標誌),但似乎沒有任何方式(即I可以說 - 我對IM有限的經驗),以每頁格式爲基礎設置壓縮。有誰知道這是否可能?或者任何人都可以推薦具有此功能的腳本工具?

Irfanview可以做每頁壓縮,但它必須通過GUI逐頁手動設置,這顯然是不理想的。

任何提示將不勝感激!

+0

你可以發佈一個鏈接到這種混合頁面格式的多頁TIFF的樣本嗎?我可以通過一個示例文件來解決這個問題...... –

回答

3

由於我沒有圍繞顯示您描述的特徵(混合格式,不同的壓縮方案和不同頁面的顏色空間......)的示例TIFF文件,因此這裏是第一個鏡頭。

要自動處理多頁TIFF,您需要知道您可以通過將其基於零的索引編號[n]附加到文件名來單獨訪問每個圖片。

此外,您應該查找list of ImageMagick escpape shortcuts,因此您可以構建一個identify -format <%escapestrings>命令,該命令會自動從文件中提取有趣的位,然後將其用於進一步處理。

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 

(對教育部門的原因故意做得比它需要更詳細:

因此,與通過運行一個定製的-format串這樣的identify識別不同的TIFF頁面之間的各種特性,例如啓動項目是...)

基於此,你應該能夠想出一個你需要的shell腳本。