Jimp将透明图像背景更改为黑色

时间:2018-06-20 05:58:50

标签: node.js image-processing image-resizing

我正在将图像上传到AWS s3,并且在图像上传之前,我使用节点jimp调整了图像的大小, 所有功能都可以使用,但是当我上传透明图像然后Jimp调整其大小并将背景更改为黑色并希望调整原始图像的大小时。

这是jimp的代码

${response}

我已经尝试过此选项,但仍无法正常工作

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);
                    });
            }
        });

有人对此有任何解决方案吗 预先感谢

2 个答案:

答案 0 :(得分:1)

这是因为您正在使用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);
                    });
            }
        });

答案 1 :(得分:1)

您应该更改背景颜色。

它只影响透明背景。

你这样做jimpImage = await jimpImage.background(0xFFFFFFFF)