0

我必须将多个 tiff 转换为单独的 png 文件。例如,我有一个 tiff 文件,它有 3 页,我想将其转换为 3 个单独的 png。在下面的代码中,我只能将 tiff 文件的第一页转换为 png。

gm(__dirname+'/Tiff/Recorded.tiff').write(__dirname+'/Png/cpng.png',(err)=>{
if(!err){
    console.log('Done');
}
else {
    console.log(err);
}

});

例如,我如何转换此 tiff 文件的第二页?

关于将 tiff 文件添加到另一个 tiff 中的第二个问题。例如,我有一个一页的 tiff 文件,而第二个三页的 tiff 文件?我调查我找到了 append 方法,但它不起作用。下面的代码!

gm(__dirname+'/Tiff/Recorded.tiff')
.append(__dirname+'/Tiff/another.tiff').append(false);

我可以将一页的 tiff 添加到三页的 tiiff 中并获得一个四页的 tiff 文件吗?

4

3 回答 3

1

您的问题很不清楚,因此我将向您展示一些示例,您可以提取所需的内容。

假设我们从一个名为 的 TIFF 文件开始6page.tif,其中有 6 页。让我们看看有多少页:

gm identify 6page.tif
6page.tif[0] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s
6page.tif[1] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s
6page.tif[2] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s
6page.tif[3] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s
6page.tif[4] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s
6page.tif[5] TIFF 595x842+0+0 DirectClass 16-bit 17.2Mi 0.000u 0m:0.000000s

好的,6 页,编号 0-5。

让我们将第 3 页提取为 PNG:

gm convert 6page.tif[3] JustPage3.png

让我们将提取的第 3 页附加到原始 tif 的末尾:

gm convert 6page.tif JustPage3.png BigBoy.tif

现在检查我们得到了什么——是的,7 页:

gm identify BigBoy.tif
BigBoy.tif[0] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[1] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[2] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[3] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[4] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[5] TIFF 595x842+0+0 DirectClass 16-bit 17.7Mi 0.000u 0m:0.000000s
BigBoy.tif[6] TIFF 595x842+0+0 PseudoClass 65536c 16-bit 17.7Mi 0.000u 0m:0.000000s
于 2017-02-01T12:18:05.130 回答
0

imagemagick 命令是convert images.tiff image%02d.png.

我不熟悉该gm模块;我会用child_process这个。

于 2017-02-01T11:32:00.183 回答
0

看看这个 npm 模块https://www.npmjs.com/package/gm

还有这个文档,特别是邻接功能的一部分

http://aheckmann.github.io/gm/docs.html

来自有关邻接功能的文档。

将图像合并成一个多图像文件 默认情况下,图像序列的所有图像都存储在同一个文件中。但是,某些格式(例如 JPEG)不支持每个文件存储多个图像,并且只会保存图像序列中的第一帧,除非将结果保存到单独的文件中。使用 +adjoin 强制将多个帧保存到多个编号的文件。如果使用 +adjoin,则输出文件名必须包含用于文件名数字部分的 printf 样式格式规范。

于 2017-02-26T12:33:35.043 回答