2

努力使用 PyLiff、Libtiff 或任何可行的方法将多个文件合并为多页 TIFF。

我正在合并数千个带有任意八位数 ID 的文件,后跟页码:

目录命名为日期\images\1999\10\14

文件组 1 01234567_0001.tif、01234567_0002.tif、01234567_0003.tif

文件组 2 07654321_0001.tif, 07654321_0002.tif

转换后我想要两个文件:

  1. 01234567.tif(3 页多页 TIFF 文件)
  2. 07654321.tif(2 页多页 TIFF 文件)

等等。请提供有关脚本和合并的指导,将按前 8 位数字分隔,将文件与唯一的 8 位数字合并,并将新的(合并的)文件重命名为适当的8-digit-number.tiff

我意识到这似乎毫不费力。我有许多不同的脚本和方法会搅乱这个论坛的水域。

4

1 回答 1

0

Ruby 能够提供的解决方案(Imagemagick 进行了实际转换)。希望这对其他人有帮助:

#!/usr/bin/env ruby

require 'find'
require 'set'

start_path = ARGV.shift || "~\Desktop\in"
output_path = ARGV.shift || "~\Desktop\out"

unless File.exist? start_path
  raise "cannot catalog contents; '#{start_path}' does not exist"
end

unless File.exist? output_path
  raise "cannot catalog contents; '#{output_path}' does not exist"
end

#make sure the output directory has a trailing slash
unless output_path =~ /\\$/
  output_path += "\\"
end

documents = Set.new

#look at each file
Find.find(start_path) do |file_path| 
  #look for the document pattern
  if file_path =~ /^(.*?(\d{8}))_\d{4}.tif/
    #track it so we can get the unique document list
    documents.add({:path => $1, :name => $2})
  end
end

documents.each do |doc|
  command = "convert #{doc[:path]}*.tif* #{output_path}#{doc[:name]}.tif"
  puts command
  `#{command}`
end
于 2014-05-04T20:50:51.427 回答