如何使用 GraphicsMagick 和 Node.js 编辑 HDRI 图像的曝光?

How to edit the exposure of an HDRI image using GraphicsMagick and Node.js?

我安装了支持 HDRI 图像的 ImageMagick。使用 bash,以下命令可用于保存具有不同数量 'stops' 的图像(其中停止是曝光的度量):

stops=`convert xc: -format "%[fx:pow(2,-1)]"`
convert input.exr \
    -colorspace RGB \
    -function polynomial "$stops,0" \
    -gamma 1 \
    -colorspace sRGB \
    output-minus-one-stop.jpg

为了做到这一点 Node.js,需要一些翻译:

var stops = Math.pow(2, -1);
gm('input.exr').colorspace('RGB')
    .out(`function polynomial "${stops},0"`)
    .gamma(1, 1, 1)
    .colorspace('sRGB')
    .write('output-minus-one-stop.jpg', function(err){});

但是我收到错误:

Command failed: convert: unable to open image `function polynomial "0.25,0"': No such file or directory @ error/blob.c/OpenBlob/2702
convert: no decode delegate for this image format `25,0"' @ error/constitute.c/ReadImage/501

由于这一行而发生错误:

.out(`function polynomial "${stops},0"`)

在此示例中格式化 out 命令的正确方法是什么?

我不会说 node,但我对 ImageMagick 相当熟悉。

gm 你看起来(对我来说)像 GraphicsMagick 而不是 ImageMagick (两者不同)并且我认为 GraphicsMagick 没有 -function polynomial.

你能转到 IM 而不是 GM 吗?我在这两个方面都可能是错误的 - 如果有人知道得更多,我很乐意得到纠正。