如何解决使用Lambda中的imagemagick图层使用.js和gm在图像上应用水印
我观看了一个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();
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相当陌生,因此不完全确定如何进行编辑以使resize功能可以用作水印功能。如果有人可以阐明这一点,将会有很大的帮助。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。