我正在使用 gif-frames ( https://www.npmjs.com/package/gif-frames ) 从动画 GIFS 中提取帧。我想将所有帧保存为单个图像。
我知道我可以使用https://www.npmjs.com/package/merge-img之类的东西,但我不知道如何使用 gif 帧的 frameData 输出并将其用作 mergeImg 的输入。你能帮忙吗?
我正在使用 gif-frames ( https://www.npmjs.com/package/gif-frames ) 从动画 GIFS 中提取帧。我想将所有帧保存为单个图像。
我知道我可以使用https://www.npmjs.com/package/merge-img之类的东西,但我不知道如何使用 gif 帧的 frameData 输出并将其用作 mergeImg 的输入。你能帮忙吗?
我发现最简单的方法如下,但我相信还有更好的方法。
gifFrames(
{ url: 'img.gif', frames: '0-2', outputType: 'jpg', cumulative: true },
function (err, frameData) {
if (err) {
throw err;
}
frameData.forEach(function (frame) {
frame.getImage().pipe(fs.createWriteStream(
'image-' + frame.frameIndex + '.png'
));
all_imgs.push('image-' + frame.frameIndex + '.png');
});
mergeImg(all_imgs).then((img) => {
// Save image as file
img.write('out.png', () => console.log('done'));
});
}
);