我目前正在将PDF转换为多个不同维度的JPG,使用Node.js在谷歌云函数中安装ImageMagick。
我在一个Promise.all()调用中这样做:
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在一次调用中完成这三个调用。
文档包含一个将图像调整为多个维度的示例:
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编写此命令。
我猜应该是这样的,但我不知道如何对选项数组中的元素进行分组,以及当命令变得复杂时按什么顺序进行分组
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`,
]),发布于 2020-05-18 04:56:59
convert的每个单独参数都应该是它自己的数组元素。如果您用空格将它与其他参数隔开,那么它应该是它自己的列表元素。例如:
[sourceFilePathTemp, "-write", "mpr:file", "-resize", "x128", ...]以此类推,对于每个参数。
https://stackoverflow.com/questions/61857912
复制相似问题