GraphicsMagick使用nodejs不能返回正确的图像
我正在使用GraphicsMagick。
这是图像:
https://hbr.org/resources/images/article_assets/hbr/1405/F1405A_A.gif
我用来裁剪:
我的代码在这里:
gm(request(url), "myimage.jpeg") .resize(270, 270, '^') .gravity('Center') .quality(50) .crop(270,270) .compress('JPEG') .flatten() .stream(function (err, stdout, stderr) { if (err) console.log(err); else { //upload the file file.uploadFileFromGm(fileDetails, stdout, cb); } });
代码工作正常。
但是我得到了一个透明的图像,左侧是空的。
我得到了以下图像:
为什么白色背景不能在透明部分工作? 任何想法如何解决这个问题?
您的input图像是一个GIF
并具有透明度。 您的输出文件是不支持透明度的JPEG
,因此GraphicsMagick已将透明像素渲染为黑色 – 默认背景颜色。
你有两个select:
-
将图片存储为
GIF
或可以表示透明度的PNG
-
将背景颜色更改为纯色(不透明)白色,并以
JPEG
存储。
您select哪一个取决于您计划使用图像的位置/方式以及图像背后的背景必须在您要使用的位置可见。
你需要这样的东西吗?