Imagemagick 在云函数上运行convert命令会返回无法在本地重现的错误

Imagemagick 在云函数上运行convert命令会返回无法在本地重现的错误,imagemagick,google-cloud-functions,Imagemagick,Google Cloud Functions,鉴于此代码: ``` ``` 我可以在我的Windows计算机上本地运行与谷歌云功能相同的convert匹配版本:ImageMagick-6.8.9-9-Q16-x64-static 当我在函数上运行相同的Imagemagick命令时,会出现以下错误: ``` {ChildProcessError:Command失败:convert-background none-stroke“rgba(139,184,232,1)”-fill“rgba(136,183,232,0.83)”-font/tmp/

鉴于此代码: ```

``` 我可以在我的Windows计算机上本地运行与谷歌云功能相同的
convert
匹配版本:ImageMagick-6.8.9-9-Q16-x64-static

当我在函数上运行相同的Imagemagick命令时,会出现以下错误: ```

{ChildProcessError:Command失败:convert-background none-stroke“rgba(139,184,232,1)”-fill“rgba(136,183,232,0.83)”-font/tmp/1057522377634683-priceFont.ttf-pointsize 90标签:“$48”-trim\(-clone-background“rgba(135,138,140,0.59)”-shadow 80x8+8+10\)+交换-背景无-图层合并+重新分页-旋转0-模糊10%-trim/tmp/1057522377634683-priceText.png
convert:image序列是必需的`-clone'@error/convert.c/ConvertImageCommand/967。
`转换-背景无-笔划“rgba(139184232,1)”-填充“rgba(136183232,0.83)”-字体/tmp/1057522377634683-priceFont.ttf-点大小90标签:“$48”-修剪\(克隆-背景“rgba(135138140,0.59)”-阴影80x8+8+10\)+交换-背景无-图层合并+重新分页-旋转0-fuzz 10%-修剪/tmp/1057522377634683 priceText.png`(已退出,错误代码为1)
回调时(/user\u code/node\u modules/child process promise/lib/index.js:33:27)
在ChildProcess.exithandler(child_process.js:211:5)
两点钟(events.js:106:13)
在ChildProcess.emit(events.js:191:7)
在maybeClose(内部/子进程js:891:16)

在Socket上。

如果我用标签替换标签:“$48”:(即不生成任何内容),我会收到相同的错误(在Linux上)。给定起始“$”,可能$48在某个地方被解释为变量名,并产生一个空字符串。通过临时替换/删除$不难检查。在这种情况下,解决方案可能是转义$:\$。

如果我将
标签:“$48”
替换为
标签:
(即,不生成任何内容)。给定起始“$”,有可能将
$48
解释为某个变量名,并生成空字符串。暂时替换/删除
$
不难检查。在这种情况下,解决方案将是转义
$
\$
(可能).Hi@xenoid-我也只收到纯文本的错误。我只是拔出了其中一个函数作为示例-因此,在编写标签时使用上述相同的代码:“Nicole”我在云函数环境中收到了相同的错误。但我还是要尝试您的建议…不会有任何伤害:)功能部署后,我将在大约20分钟后与您联系。我不知道功能,因此我无法提供更多帮助。也许还可以删除所有阴影生成,并检查是否确实在第一阶段生成了图像。@xenoid-先生,您是一个目光冷酷的导弹人!那美元是问题所在……现在我要进入下一阶段;)如果你愿意写这个作为回答,我很乐意接受。我欠你一杯啤酒,我的朋友!用愿望列表链接或其他什么联系我!完成了。事实上,当我在Linux上尝试你的命令时,生成的图像只有
8
。不难理解为什么4美元消失了。
let exec = require('child-process-promise').exec
let magickCommand = `convert -background none -stroke "rgba(139, 184, 232, 1)" -fill "rgba(136, 183, 232, 0.83)" -font /tmp/1057522377634683-priceFont.ttf -pointsize 70 label:"$48" -trim ( +clone -background "rgba(135, 138, 140, 0.59)" -shadow 80x8+8+10 ) +swap -background none -layers merge +repage -rotate 0 -fuzz 10% -trim /tmp/1057522377634683-priceText.png`
exec(magickCommand).then(() => { console.log('finished') })
{ ChildProcessError: Command failed: convert -background none -stroke "rgba(139, 184, 232, 1)" -fill "rgba(136, 183, 232, 0.83)" -font /tmp/1057522377634683-priceFont.ttf -pointsize 90 label:"$48" -trim \( -clone -background "rgba(135, 138, 140, 0.59)" -shadow 80x8+8+10 \) +swap -background none -layers merge +repage -rotate 0 -fuzz 10% -trim /tmp/1057522377634683-priceText.png
convert: image sequence is required `-clone' @ error/convert.c/ConvertImageCommand/967.
 `convert -background none -stroke "rgba(139, 184, 232, 1)" -fill "rgba(136, 183, 232, 0.83)" -font /tmp/1057522377634683-priceFont.ttf -pointsize 90 label:"$48" -trim \( -clone -background "rgba(135, 138, 140, 0.59)" -shadow 80x8+8+10 \) +swap -background none -layers merge +repage -rotate 0 -fuzz 10% -trim /tmp/1057522377634683-priceText.png` (exited with error code 1)
    at callback (/user_code/node_modules/child-process-promise/lib/index.js:33:27)
    at ChildProcess.exithandler (child_process.js:211:5)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:891:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:497:12)
  name: 'ChildProcessError',
  code: 1,
  childProcess: 
   { ChildProcess: { [Function: ChildProcess] super_: [Object] },
     fork: [Function],
     _forkChild: [Function],
     exec: [Function],
     execFile: [Function],
     spawn: [Function],
     spawnSync: [Function: spawnSync],
     execFileSync: [Function: execFileSync],
     execSync: [Function: execSync] },
  stdout: '',
  stderr: 'convert: image sequence is required `-clone\' @ error/convert.c/ConvertImageCommand/967.\n' }