Firebase сгенерировать эскиз круга с кодом 1 - PullRequest
1 голос
/ 26 апреля 2019

Я пытался использовать ImageMagick для преобразования загрузки изображений из моего приложения в Firebase с помощью облачных функций.

return spawn("convert", [
    tempFilePath,
    "(",
    "-size", 
    dim + "x" + dim, 
    "xc:black",
    "-fill",
    "white",
    "-draw",
    "\"circle",
    dim2 + "," + dim2,
    dim2 + "," + dim1+"\"",
    ")",
    "-alpha",
    "off",
    "-gravity",
    "center",
    "-compose",
    "copy_opacity",
    "-composite",
    "-crop",
    dim+"x"+dim+"+0+0",
    "-thumbnail",
    "300x300>",
    tempFilePathPNG
  ]); 

с dim и dim2 - это мое конкретное измерение. Но когда я использую эту функцию, появляется ошибка, и я не знаю как. Вы можете проверить изображение ниже.

`convert /tmp/7eee6327-8b7a-41f8-a1a2-19bbc3f297c2.jpg ( -size 2592x2592 xc:black -fill white -draw "circle 1296,1296 1296,2591" ) -alpha off -gravity center -compose copy_opacity -composite -crop 2592x2592+0+0 -thumbnail 300x300> /tmp/7eee6327-8b7a-41f8-a1a2-19bbc3f297c2.png` failed with code 1

Я также стараюсь, чтобы другие генерировали как только resize и draw image и это успех. Но этот код выше всегда терпит неудачу. Пожалуйста, помогите мне. enter image description here

Ответы [ 2 ]

3 голосов
/ 02 мая 2019

Я нашел решение !!!Я конвертирую spawn в exec в дочернем обещании, как показано ниже, и это работает.Я также положил двойной переход рядом с кронштейном, чтобы он работал.Но я все еще хочу использовать икру.

return new Promise((resolve,reject)=>{
        exec("convert "+tempFilePath+" \\( -size "+dim+"x"+dim+" xc:black -fill white -draw \"circle "+dim2+","+dim2+" "+dim2+","+dim1+"\" \\) -alpha off -gravity center -compose copy_opacity -composite -crop "+dim+"x"+dim+"+0+0 -thumbnail 300x300 "+tempFilePathPNG,(error,stdout,stderr)=>{
          if(error){
            console.log(error);
            reject(error);
            return;
          }
          resolve();
        })
      })
0 голосов
/ 02 мая 2019

Публикация в качестве ответа из-за недостатка carma:

convert ожидает имя файла в качестве последнего аргумента или «-» для использования стандартного вывода.В вашем случае последний аргумент - 300x300, поэтому преобразование завершится с ошибкой:

...