【发布时间】:2020-12-07 23:00:35
【问题描述】:
我有一个可以从图像中提取原始数据的工作 bash 脚本。我正在将此脚本转换为 JS (node.js),并且无法将管道命令转换为其组件以转换为 javascript。 exiftool 命令有效(据我所知,错误发生在第一个转换函数。
工作 bash 管道:
exiftool $F -b -RawThermalImage | convert - gray:- | convert -depth 16 -endian lsb -size $Resolution gray:- $F-RAW.tiff
当前(不工作)javascript:
const execFile = require('child_process').execFile;
const exiftool = require('dist-exiftool');
const im = require('imagemagick');
execFile(exiftool, ['file.jpg', '-b', '-RawThermalImage', '-w', '-raw.jpg'], (error) => {
if (err) throw "Error extracting RawThermalImage. Unsupported filetype.";
im.convert(['file-raw.jpg', 'gray', 'file-raw.jpg'], function(err, stdout){
if (err) throw err;
console.log('stdout:', stdout);
im.convert(['file-raw.jpg', '-depth', '16', 'endian', 'lsb', '-size', resolution, 'gray', 'file-raw.jpg'], function(err, stdout){
if (err) throw err;
console.log('stdout:', stdout);
});
});
});
【问题讨论】:
-
在第二个命令中,尝试 `im.convert(['raw-file.jpg', 'gray:raw-file.gray']... 然后将 raw-file.gray 传递给您的第三个命令。见灰色imagemagick.org/script/formats.php#supported
-
@fmw42 不幸的是,虽然命令
convert raw.tiff gray:raw.gray在命令行上工作,但im.convert(['raw.tiff', 'raw.gray']...和im.convert(['raw.tiff', 'gray:-']...在节点中对我来说都失败了 -
im.convert(['raw.tiff', 'gray:raw.gray']...也失败了 -
对不起,我不知道 Node.js。所以我无能为力了
标签: node.js bash imagemagick exiftool