微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Lambda中的imagemagick图层使用.js和gm在图像上应用水印

如何解决使用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 举报,一经查实,本站将立刻删除。