首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ImageMagick的mpr和Node.js中的衍生批量调整大小

使用ImageMagick的mpr和Node.js中的衍生批量调整大小
EN

Stack Overflow用户
提问于 2020-05-18 03:52:32
回答 1查看 121关注 0票数 1

我目前正在将PDF转换为多个不同维度的JPG,使用Node.js在谷歌云函数中安装ImageMagick。

我在一个Promise.all()调用中这样做:

代码语言:javascript
复制
return Promise.all([
  spawn("convert", [
    sourceFilePathTemp,
    "-resize",
    `1600x`,
    `${imageDirTemp}/image-large-%03d.jpg`,
  ]),
  spawn("convert", [
    sourceFilePathTemp,
    "-resize",
    `800x`,
    `${imageDirTemp}/image-medium-%03d.jpg`,
  ]),
  spawn("convert", [
    sourceFilePathTemp,
    "-thumbnail",
    `200x200>`,
    `${imageDirTemp}/image-thumbnail-%03d.jpg`,
  ]),
]);

我已经意识到我可以使用mpr (=内存程序寄存器) (https://www.imagemagick.org/Usage/files/#mpr)根据ImageMagick在一次调用中完成这三个调用。

文档包含一个将图像调整为多个维度的示例:

代码语言:javascript
复制
convert scroll.gif  -background lightsteelblue -flatten  -alpha off \
        -write mpr:scroll  -resize x128  -write scroll_lrg.jpg +delete \
                mpr:scroll  -resize x96   -write scroll_big.jpg +delete \
                mpr:scroll  -resize x64   -write scroll_med.jpg +delete \
                mpr:scroll  -resize x32          scroll_sml.jpg

但是,我不知道如何使用spawn编写此命令。

我猜应该是这样的,但我不知道如何对选项数组中的元素进行分组,以及当命令变得复杂时按什么顺序进行分组

代码语言:javascript
复制
  spawn("convert", [
    sourceFilePathTemp,
    "-write",
    `mpr:file -resize x128 -write ${imageDirTemp}/image-large-%03d.jpg +delete`,
    `mpr:file -resize x96 -write ${imageDirTemp}/image-medium-%03d.jpg +delete`,
    `mpr:file -resize x64 -write ${imageDirTemp}/image-small-%03d.jpg +delete`,
  ]),
EN

回答 1

Stack Overflow用户

发布于 2020-05-18 04:56:59

convert的每个单独参数都应该是它自己的数组元素。如果您用空格将它与其他参数隔开,那么它应该是它自己的列表元素。例如:

代码语言:javascript
复制
[sourceFilePathTemp, "-write", "mpr:file", "-resize", "x128", ...]

以此类推,对于每个参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61857912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档