使用 Jimp 将透明图像背景更改为黑色
transparent image background change to black with Jimp
我正在将图片上传到 aws s3,在上传图片之前,我正在使用 node jimp 调整图片大小,
所有功能都在工作,但是当我上传透明图像然后 Jimp 调整它的大小并将背景更改为黑色并想要调整大小的原始图像时。
这里是 jimp 的代码
Jimp.read(buf, (err, image) => {
if (err)
reject(err);
else {
image.resize(118, 66)
.quality(100)
.getBase64(Jimp.MIME_JPEG, (err, src) => {
if (err)
reject(err);
else
resolve(src);
});
}
});
我试过这个选项,但还是不行
.rgba(false)
.background(0x00ff001C)
有没有人对此有任何解决方案
提前致谢
这是因为您使用 JPEG 作为缓冲区的 Mimetype。
只需将 Jimp.MIME_JPEG 更改为 Jimp.MIME_PNG 即可排序。
如下图
Jimp.read(buf, (err, image) => {
if (err)
reject(err);
else {
image.resize(118, 66)
.quality(100)
.getBase64(Jimp.MIME_PNG, (err, src) => {
if (err)
reject(err);
else
resolve(src);
});
}
});
你应该改变背景颜色。
它只影响透明背景。
你这样做jimpImage = await jimpImage.background(0xFFFFFFFF)
我正在将图片上传到 aws s3,在上传图片之前,我正在使用 node jimp 调整图片大小, 所有功能都在工作,但是当我上传透明图像然后 Jimp 调整它的大小并将背景更改为黑色并想要调整大小的原始图像时。
这里是 jimp 的代码
Jimp.read(buf, (err, image) => {
if (err)
reject(err);
else {
image.resize(118, 66)
.quality(100)
.getBase64(Jimp.MIME_JPEG, (err, src) => {
if (err)
reject(err);
else
resolve(src);
});
}
});
我试过这个选项,但还是不行
.rgba(false)
.background(0x00ff001C)
有没有人对此有任何解决方案 提前致谢
这是因为您使用 JPEG 作为缓冲区的 Mimetype。
只需将 Jimp.MIME_JPEG 更改为 Jimp.MIME_PNG 即可排序。
如下图
Jimp.read(buf, (err, image) => {
if (err)
reject(err);
else {
image.resize(118, 66)
.quality(100)
.getBase64(Jimp.MIME_PNG, (err, src) => {
if (err)
reject(err);
else
resolve(src);
});
}
});
你应该改变背景颜色。
它只影响透明背景。
你这样做jimpImage = await jimpImage.background(0xFFFFFFFF)