这些是我用于向图像添加水印的代码:
const ORIGINAL_IMAGE = "https://example/sample_image;
const LOGO = fs.readFileSync('gangle.png');
const LOGO_MARGIN_PERCENTAGE = 5;
let [image, logo] = await Promise.all([
Jimp.read(ORIGINAL_IMAGE),
Jimp.read(LOGO)
]);
logo.resize(image.bitmap.width, Jimp.AUTO);
const xMargin = (image.bitmap.width * LOGO_MARGIN_PERCENTAGE) / 100;
const yMargin = (image.bitmap.width * LOGO_MARGIN_PERCENTAGE) / 100;
const X = image.bitmap.width - logo.bitmap.width - xMargin;
const Y = image.bitmap.height - logo.bitmap.height - yMargin;
image.composite(logo, X, Y, [
{
mode: Jimp.BLEND_SCREEN,
opacitySource: 0.1,
opacityDest: 1
}
]);
image.write('animatedimg.gif')
但它仅适用于文件类型为 png/jpg/jpeg 的图像。它不适用于 gif 图像。
它将生成一个文件“animatedimg.gif”,但该文件不会加载到任何图像查看器或浏览器。
如果我尝试在 mac 中打开该文件,弹出窗口将显示消息:“文件“animatedimg.gif”无法打开,因为它是空的。”
有没有办法在 jimp 中做到这一点?或者还有其他 npm 包吗?谢谢你。