首页 > 解决方案 > 一个转换多页 tiff 图像的 node.js 模块

问题描述

是否有任何工具可用于将多页 tiff 文件转换为 JPG、PNG..等?

我正在使用来自 node.js 的模块 sharp 将 tiff 图像转换为我想要的格式。但它似乎无法转换那些压缩了多个页面的单个 tiff 文件(它只转换第一页)

标签: node.jstiff

解决方案


任何 node.js 模块都将在下面使用 ImageMagick 或 GraphicsMagick,因此您需要在$PATH. 如果您使用的是 OSX,请确保您有brew 包管理器,然后运行:

brew install imagemagick
brew install graphicsmagick

现在,您可以安装一个简单的 node.js 模块tiff-to-png :

$ npm install tiff-to-png

然后制作一个简单的脚本,如下所示:

const ConvertTiff = require('tiff-to-png');
const glob = require('glob');

// cwd option sets the current-working-directory
// that tiff-to-png runs from.
let options = {
  cwd: '/path/to/rootDir/of/tiffs'
};

let location = '/path/to/output/pictures';
let converter = new ConvertTiff(options);

// for Files
let forFiles = (err, files) => {
  if (err) console.log(err);
  converter.convertArray(files, location);
};

// glob it.
glob('**/*.tif', options, forFiles);

现在,如果您的多页 tif 文件未正确拆分。安装 imagemagick 和 graphicsmagick 库后,您应该有两个命令:tiffcptiffsplit.

有时,不正确的压缩会导致您看到的失败。用于tiffcp -c none orig.tif fixed.tif消除麻烦的压缩。然后运行tiffsplit fixed.tif prefixForSplitFile-,您应该在多页 tiff 中获得多个文件。

最后,为了转换为 PNG 以外的格式,以及使用 node.js 使用 Image/GraphicsMagick 进行更高级的图像处理,请安装gm模块,它可以从 node.js 运行上述命令。


推荐阅读