我正在使用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);
}
});
代码工作正常。
但是我得到的透明图像在左侧是空的。
我得到了下面的图像:
为什么白色背景在透明部分不起作用?知道如何解决这个问题吗?
答案 0 :(得分:2)
您的输入图片是GIF
并且具有透明度。您的输出文件是JPEG
,它不支持透明度,因此GraphicsMagick将透明像素渲染为黑色 - 默认背景颜色。
您有两种选择:
将您的图片存储为GIF
或PNG
,可以代表透明度
将背景颜色更改为实心(非透明)白色并存储为JPEG
。
您选择哪一个取决于您计划使用图像的位置和方式,以及图像背后的背景是否必须在您要使用的位置可见。
答案 1 :(得分:0)
你需要这样的东西吗?