Javascript 使用Lambda中的imagemagick层使用.js和gm在图像上应用水印
我观看了一段Youtube视频,内容是在Lambda上添加Imagemagick层,并使用它使用Imagemagick提供的不同功能。该示例演示了如何调整图像大小,但我需要对其应用水印。视频给出的代码如下:Javascript 使用Lambda中的imagemagick层使用.js和gm在图像上应用水印,javascript,amazon-web-services,aws-lambda,imagemagick,watermark,Javascript,Amazon Web Services,Aws Lambda,Imagemagick,Watermark,我观看了一段Youtube视频,内容是在Lambda上添加Imagemagick层,并使用它使用Imagemagick提供的不同功能。该示例演示了如何调整图像大小,但我需要对其应用水印。视频给出的代码如下: const gm = GM.subClass({ imageMagick: true }); const FileType = require('file-type'); const AWS = require('aws-sdk'); const s3 = new AWS.S3(); con
const gm = GM.subClass({ imageMagick: true });
const FileType = require('file-type');
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const axios = require('axios');
exports.downloadImage = async (url) => {
const res = await axios.get(url, { responseType: 'arraybuffer' });
return Buffer.from(res.data, 'binary');
};
exports.resize = async (buf, width, height) => {
return new Promise((resolve, reject) => {
gm(buf).resize(width, height).noProfile().toBuffer((err, buffer) => err ? reject(err) : resolve(buffer));
});
};
exports.saveToS3 = async (bucket, name, buf) => {
const contentType = await FileType.fromBuffer(buf);
const key = `${name}.${contentType.ext}`;
await s3.putObject({
Bucket: bucket,
Key: key,
Body: buf,
ContentEncoding: 'base64',
ContentType: contentType.mime,
}).promise();
return key;
};
现在我需要使用Imagemagick gm库应用水印,我发现convert可以将一些文本应用到照片中,但我对javascript非常熟悉,因此不确定如何编辑以使调整大小函数作为水印函数工作。如果有人能说明这一点,那将是一个很大的帮助。谢谢