在节点.js中使用图形魔术提取 gif 帧

Extract frame of gif with graphicsmagick in node.js

本文关键字:魔术 提取 gif 图形 节点 js      更新时间:2023-09-26

我正在尝试使用node.js上的图形魔术将gif转换为png。在他们的文档中,他们有以下代码:

// pull out the first frame of an animated gif and save as png
gm('/path/to/animated.gif[0]')
    .write('/path/to/firstframe.png', function(err){
    if (err) print('aaw, shucks')
})
但是,如果我不是从文件中读取数据,

而是从流或缓冲区读取数据,该怎么办?在那里我不必给出路径,因此无法附加 [0]。

我需要的是这样的东西:

gm(streamOrBuffer).extractFrame(0)
    .write('/path/to/firstframe.png', function(err){
    if (err) print('aaw, shucks')
})

这里有一个类似的问题,但海报最终在画布上绘制了 gif 以提取客户端的第一帧。

我找不到任何看起来可以做我想做的事的 gm 命令。有什么想法吗?

根据来源,您可以使用.selectFrame(0) .

gm(streamOrBuffer)
    .selectFrame(0)
    .write('/path/to/firstframe.png', function(err) {
        if (err) console.log(err);
    });