node.js - Nodejs gm 库 - 如何创建多个图像按顺序分层的转换命令

标签 node.js aws-lambda imagemagick graphicsmagick gm

等效的nodejs gm库是什么https://github.com/aheckmann/gm命令到此 imagemagick cli 命令?

imagemagick cli 命令在透明背景上分层多个图像:

convert -size 669x122 xc:none img1.jpg -geometry +223+0 -composite 
        img2.jpg -geometry +251+46 -composite 
        img3.png -geometry +283+46 -composite 
        img4.jpg -geometry +446+61 -composite 
        img5.jpg -geometry +223+61 -composite 
        img6.jpg -geometry +0+61 -composite 
        output.png

gm 库命令是:?

const gm = require('gm').subClass({
    imageMagick: true // im binaries are already installed on lambda functions
})

gm()
.out('-size 669x122 xc:none 
       img1.jpg -geometry +223+0 -composite 
       img2.jpg -geometry +251+46 -composite 
       img3.png -geometry +283+46 -composite 
       img4.jpg -geometry +446+61 -composite 
       img5.jpg -geometry +223+61 -composite 
       img6.jpg -geometry +0+61 -composite 
       output.png')
.write()

我是 Nodejs 新手,这将在 aws lambda 函数上运行。 Imagemagick 二进制文件预安装在 lambda 上。除了我最初的问题之外,我是否应该使用 exec() nodejs 功能来传递此字符串,或者使用 nodejs gm 库有什么好处?

最佳答案

从技术上讲,这不是我原来问题的答案,而是解决问题的另一种方法。最终放弃 gm npm 库并仅使用 exec()。但仍然想知道 .out 是否有效或正确。

这是 Nodejs 代码库的一部分,用于使用 imagemagick 创建多层图像。

const exec = require('child_process').exec

let command = []

for (let i = 0; i < my['images'].length; i++) {
    if (i === 0) {
        command.push('convert')
        command.push(`-size ${my['canvas_width']}x${my['canvas_height']} xc:none`)
    }

    command.push(`${local}${my['images'][i]['image']}`)
    command.push(`-geometry +${my['images'][i]['x']}+${my['images'][i]['y']}`)
    command.push('-composite')
}

command.push(`${local}${outputImage}`)
command = command.join(' ')

console.log(command)

exec(command, (err, stdout, stderr) => {
    if (err) {
        next(`${err} ${stdout} ${stderr}`)
    } else {
        next(null)
    }
})

关于node.js - Nodejs gm 库 - 如何创建多个图像按顺序分层的转换命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433538/

相关文章:

node.js - 如何在 NPM 中表达替代依赖关系?

amazon-web-services - 适用于 SSM 获取参数的 AWS SAM 托管策略

imagemagick - 无法使用 Brew 在 Mac 上安装 Imagemagick

windows - 如何使用 ImageMagick 批量转换 pdf 并对流程进行基准测试?

node.js - npm installexpress 仍然无法工作

node.js - 在nodejs中创建solana钱包时如何支付租金

node.js - 除非使用 tskill,否则 Node 进程不会退出

amazon-web-services - AWS API Gateway 自定义授权方日志

amazon-web-services - Amazon Cognito 删除账户

imagemagick - 由于 magick_image_readpath 中的错误,无法将 kable 保存为 PDF