Firebase 生成圆形缩略图失败,代码为 1
Firebase generate circle thumbnail fail with code 1
我尝试使用 ImageMagick 通过 Cloud Functions 将图片从我的应用程序上传到 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
并且它成功了。但是上面的这段代码总是失败。请帮我。
由于 carma 不足,作为答案发布:
convert 期望文件名作为最后一个参数,或“-”以使用标准输出。
在您的情况下,最后一个参数是 300x300,因此转换会失败,例如:
转换:缺少图像文件名“300x300”
尝试用“300x300 - >”替换“300x300>”
我找到了解决办法!!!
我将 spawn 转换为 exec in child promise 如下所示并且它有效。我还将双重逃生装置放在支架附近以使其工作。但是我还是想用spawn。
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();
})
})
我尝试使用 ImageMagick 通过 Cloud Functions 将图片从我的应用程序上传到 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
并且它成功了。但是上面的这段代码总是失败。请帮我。
由于 carma 不足,作为答案发布:
convert 期望文件名作为最后一个参数,或“-”以使用标准输出。 在您的情况下,最后一个参数是 300x300,因此转换会失败,例如: 转换:缺少图像文件名“300x300”
尝试用“300x300 - >”替换“300x300>”
我找到了解决办法!!! 我将 spawn 转换为 exec in child promise 如下所示并且它有效。我还将双重逃生装置放在支架附近以使其工作。但是我还是想用spawn。
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();
})
})