如何使用 gmmagick 将多个 tiff 文件转换为 png 文件?

How to convert multiple tiff file to png files using gmmagick?

我必须将多个 tiff 转换为单独的 png 文件。事实上,我有一个包含 3 页的 tiff 文件,我想将它转换为 3 个单独的 png' s.In 下面的代码我只能将 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 文件?我调查我找到了追加方法,但它不是下面的 working.The 代码!

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

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

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

我不熟悉 gm 模块;我会为此使用 child_process

你的问题比较不清楚,我给你举几个例子,你可以提取你需要的部分。

假设我们从一个名为 6page.tif 的 TIFF 文件开始,其中有 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

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

还有这个文档,尤其是 adjoin 函数的部分

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

来自关于 adjoin 函数的文档。

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