node.js - Node.js 的 GraphicsMagick 可以处理不固定数量的图像以输出 GIF 序列吗?
问题描述
我正在使用GraphicsMagick for Node.js从 16 个 jpg 图像生成 GIF 序列。这很好用。但是,当我使用该功能时,目前我硬编码了序列中的图像数量gm().in
我找不到使这个数字动态化的方法或其他功能。
这是我的代码:
var tmp_filenames = [];
var nNbStates = 16;
for (var nStateNum=0; nStateNum < nNbStates; nStateNum++)
{
tmp_filenames.push('mypath\myinputfilename' + nStateNum + '.jpg');
}
var gm = require('gm');
gm()
.in(tmp_filenames[0])
.in(tmp_filenames[1])
.in(tmp_filenames[2])
.in(tmp_filenames[3])
.in(tmp_filenames[4])
.in(tmp_filenames[5])
.in(tmp_filenames[6])
.in(tmp_filenames[7])
.in(tmp_filenames[8])
.in(tmp_filenames[9])
.in(tmp_filenames[10])
.in(tmp_filenames[11])
.in(tmp_filenames[12])
.in(tmp_filenames[13])
.in(tmp_filenames[14])
.in(tmp_filenames[15])
.write(output_filename, function (err) {
if (!err) console.log('gif file created!');
});
谢谢阅读。
解决方案
好的,我找到了解决方案。我不熟悉这种使用变量和函数的方式这应该可以:
var tmp_filenames = [];
var nNbStates = 16;
var bmp = gm();
for (var nStateNum=0; nStateNum < nNbStates; nStateNum++)
{
tmp_filenames.push('mypath\myinputfilename' + nStateNum + '.jpg');
bmp.in(tmp_filenames[nStateNum])
}
.write(output_filename, function (err) {
if (!err) console.log('gif file created!');
});
推荐阅读
- c - 错误:使用“designated_init”属性声明的“struct”中字段的位置初始化 [-Werror=designated-init]
- java - 根据 ADF 中的自定义 Pojo 列表在 af:table 上应用过滤器
- c# - 如何使用推送通知将来自 webapi 操作方法的返回消息显示到我的 Web 浏览器
- css - 使用断点创建新的引导类
- laravel-5.7 - DB::select() - 如何获取数组数组而不是集合数组
- ios - UISearchBarController 卡在 NavigationBar Swift 下
- string - 如何在没有大写和小写python的情况下检查路径是否存在
- python - 一个热编码单分类数值列
- python - 无需平铺的水平连接的有效方式
- shell - Ssh to multiple hosts and run command based on hostnames