【问题标题】:Compressing multipage TIF files with varied page formats via command line通过命令行压缩具有不同页面格式的多页 TIF 文件
【发布时间】:2012-06-12 22:17:55
【问题描述】:

我们的文档管理系统中包含大量多页 TIF 文件(主要是文档扫描)。由于各种历史问题和最终用户的误解,其中很大一部分比它们需要的要大得多(例如,它们将以比要求更高的分辨率进行扫描,或者未经压缩存储)。

我一直在研究其中的一些文档并进行一些优化,以收回一些宝贵的存储空间(我已经恢复了 25GB,只是取出了非常低的果实)。

到目前为止,我一直在使用 ImageMagick 和 Irfanview 的组合,但我真的很想进一步自动化这个过程,因为目前它非常耗费人力。我在创建一些脚本方面很擅长,但不幸的是,所讨论的 TIF 的性质被证明是有问题的。

尤其是其中大多数包含混合页面格式;用于基本字母页面的双级/1 位页面和用于图像/地图/计划的全彩色 RGB 页面。大多数文档会混合使用这些类型,而且并不总是以任何特定的顺序排列(实际上它们可能会在这两种格式之间来回切换)。

理想情况下,我想在双层页面上使用第 4 组传真压缩,在彩色页面上使用 JPEG 压缩(因此 ImageMagick 中的 -compress group4 / -compress jpeg 标志)但似乎没有任何方法(我可以告诉 - 我在 IM 方面的经验有限)在每页格式的基础上设置压缩。有谁知道这是否可能?或者任何人都可以推荐一个具有此功能的可编写脚本的工具吗?

Irfanview 可以按页面压缩,但必须通过 GUI 手动逐页设置,显然不理想。

任何提示将不胜感激!

【问题讨论】:

  • 您能否发布一个链接,指向具有混合页面格式的多页 TIFF 示例?我也许可以用一个示例文件来解决这个问题......

标签: image-processing automation compression imagemagick


【解决方案1】:

由于我没有显示您描述的特征(混合格式、不同压缩方案和不同页面的色彩空间......)的示例 TIFF 文件,所以这是第一个镜头。

要自动处理多页 TIFF,您需要知道可以通过将其从零开始的索引号 [n] 附加到文件名来单独访问每张图片。

此外,您应该查找list of ImageMagick escpape shortcuts,这样您就可以构建一个identify -format <%escapestrings> 命令,该命令会自动从文件中提取有趣的位,然后您将使用它来进行进一步的处理。

因此,通过运行带有自定义 -format 字符串的 identify 来识别不同 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

(出于教育原因,故意写得过于冗长……)

基于此,您应该能够想出一个 shell 脚本来满足您的需求。

【讨论】:

  • “想出一个shell脚本”你能详细说明一下吗?我想不出一种方法来告诉 tiffcp 用不同的压缩方式压缩 Tiff 的每一页,这似乎是不可能的。您知道任何可以从终端执行此操作的工具吗?
  • @Mehdi:你的要求很不寻常。失控,我什至不知道这是否可能。但是,您可以做什么:将多页 TIFF 拆分为单独的页面,以不同方式压缩每个页面。但是我不知道如果您重新附加所有页面而不对其进行测试并仔细查看,压缩会发生什么。
  • 为了便于可视化的自包含数据,tiff的第一页将包含正常图像,最后一页将存储一些编码为形状1xn图像的数据(坐标变换,相机姿势等)。在第一页上运行 jpeg 很好,但在最后一页上它会损坏存储的数据。
  • @Mehdi:当然,如果您使用 JPEG 压缩!难道您不知道,JPEG 压缩永远不会是无损的吗?此外,如果您反复应用它,它永远不会给您完全相同的结果?
  • 这就是为什么我想用 JPEG 压缩一些页面而不压缩其他页面的原因。无论如何,使用 tiffcp *.tif multipage.tif 没有任何标志来组合压缩和非压缩 tiff 以某种方式工作,它似乎只是重新压缩压缩的,导致图像质量略有下降,但我可以忍受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多