多线程 TIFF 到 PNG 转换

多线程 TIFF 到 PNG 转换

我正在处理扫描书籍的图像,所以有数百张高分辨率图片。我正在使用 Photoshop Elements 进行转换工作 - 我可以快速将它们保存为未压缩的 TIFF,但使用单个线程转换为压缩的 PNG 需要很长时间。

您是否知道一种软件,最好是简单且免费的,可以以多线程方式(同时处理 4 到 8 个文件)批量将这些 TIFF 转换为 PNG,以利用这些核心并缩短转换时间?我不太担心最终尺寸的细微变化。

答案1

如果要转换大量文件,则可以结合使用 GNU parallel 与 imagemagick 同时执行多个作业。

parallel -j 8 convert {} {.}.png ::: *.tiff

...将目录中的每个 img.tiff 转换为 img.png,一次执行 8 个作业。如果放弃-j 8,并行将默认为每个 CPU 核心执行一个作业。

要进行递归转换,请将 find 与 parallel 结合起来:

find . -type f -name "*.tiff" | parallel -j 8 convert {} {.}.png

答案2

图像魔术师是一款出色的免费软件,能够通过命令行执行您的要求。以下是多线程信息

使用它就像打字一样简单convert image.tif image.png,但可以启用各种选项来满足您的需求。检查文档了解更多信息。

答案3

以多线程方式写入(即压缩)单个 PNG 文件是可行的,但比较麻烦。一个开源实现是https://github.com/anvio/png-parallel,链接自https://stackoverflow.com/questions/10827247/parallelization-of-png-file-creation-with-c-libpng-and-openmp

如果可能的话,按照 evilsoup 建议的那样,压缩多个 PNG,每个线程一个。

相关内容