我正在处理扫描书籍的图像,所以有数百张高分辨率图片。我正在使用 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
答案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,每个线程一个。