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

时间:2017-02-01 10:02:00

标签: node.js imagemagick tiff gm

我必须将multipple tiff转换为单独的png文件。对于isntance我有一个3页的tiff文件,我想将它转换为3个单独的png。在下面的代码我可以只将tiff文件的第一页转换为png。

ajax

});

我怎么能转换这个tiff文件的第二页?

关于将tiff文件添加到另一个tiff中的第二个问题。例如,我有一个页面的tiff文件,并且有三个页面的第二个tiff文件?我调查我发现了附加方法,但它没有工作。下面的代码!

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

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

3 个答案:

答案 0 :(得分:1)

你的问题很不清楚,所以我会给你看一些例子,你可以提取你需要的东西。

假设我们从一个名为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

答案 1 :(得分:0)

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

我不熟悉gm模块;我只想使用child_process

答案 2 :(得分:0)

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

此文档也特别是adjoin函数的一部分

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

关于adjoin功能的文档。

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