使用 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)