【发布时间】:2019-06-05 01:11:33
【问题描述】:
是否有任何工具可以将多页 tiff 文件转换为 JPG、PNG..等?
我正在使用来自 node.js 的一个模块 sharp 将 tiff 图像转换为我想要的格式。但它似乎无法转换那些压缩了多个页面的单个 tiff 文件(它只转换第一页)
【问题讨论】:
是否有任何工具可以将多页 tiff 文件转换为 JPG、PNG..等?
我正在使用来自 node.js 的一个模块 sharp 将 tiff 图像转换为我想要的格式。但它似乎无法转换那些压缩了多个页面的单个 tiff 文件(它只转换第一页)
【问题讨论】:
任何 node.js 模块都将在下面使用 ImageMagick 或 GraphicsMagick,因此您需要 $PATH 上的这些二进制文件。如果您使用的是 OSX,请确保您拥有 brew package manager,然后运行:
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 库后,您应该有两个命令:tiffcp 和 tiffsplit。
有时是不正确的压缩导致您看到的失败。使用tiffcp -c none orig.tif fixed.tif 消除麻烦的压缩。然后运行tiffsplit fixed.tif prefixForSplitFile-,您应该在多页 tiff 中获得多个文件。
最后,为了转换为 PNG 以外的格式,以及使用 node.js 使用 Image/GraphicsMagick 进行更高级的图像处理,安装 gm 模块,它可以从 node.js 运行上述命令。
【讨论】:
最好的模块是 imagemagick http://www.imagemagick.org/script/index.php。您可以使用它来进行大多数图像翻译/转换,
在命令提示符下,只需键入 ...
npm install imagemagick
npm install tiff-to-png
【讨论】: