我扫描了多页TIFF图像,需要将每一页分成单独的文件。

利用.NET框架和C#可以轻松做到这一点,但是由于我没有在所使用的计算机上安装所有开发工具,因此我选择使用IronPython(通过ipy.exe)来快速编写处理脚本逻辑。

使用Stack Overflow作为“博客”引擎,我将为自己的问题提供答案。欢迎提出意见,建议,替代方案等!

最佳答案

这是执行此操作的一种方法-根据需要进行调整。

import clr
clr.AddReference("System.Drawing")

from System.Drawing import Image
from System.Drawing.Imaging import FrameDimension
from System.IO import Path

# sourceFilePath - The full path to the tif image on disk (e.g path = r"C:\files\multipage.tif")
# outputDir - The directory to store the individual files.  Each output file is suffixed with its page number.
def splitImage(sourceFilePath, outputDir):
     img = Image.FromFile(sourceFilePath)

     for i in range(0, img.GetFrameCount(FrameDimension.Page)):

         name = Path.GetFileNameWithoutExtension(sourceFilePath)
         ext = Path.GetExtension(sourceFilePath)
         outputFilePath = Path.Combine(outputDir, name + "_" + str(i+1) + ext)

         frameDimensionId = img.FrameDimensionsList[0]
         frameDimension = FrameDimension(frameDimensionId)

         img.SelectActiveFrame(frameDimension, i)
         img.Save(outputFilePath, ImageFormat.Tiff)

09-05 11:04