问题描述
我的lambda函数监视s3,获取对象并裁剪/调整大小到所需的大小,然后上传。我确实有用于imagemagick的lambda层,并且在调整大小方面已经取得了一些成功,但是它可能在10%的时间内起作用。 这些是我的imagemagick函数,
distinct(my.df,!!sym(iKey),.keep_all= TRUE)
调用调整大小或裁剪为
exports.resizeImg = async (buf,width,height) => {
return new Promise((resolve,reject) => {
gm(buf).resize(width,height).noprofile().toBuffer((err,buffer) => err ? console.log(err) : resolve(buffer));
});
};
exports.cropImg = async (buf,reject) => {
gm(buf).crop(width,height,0).noprofile().toBuffer((err,buffer) => err ? reject(err) : resolve(buffer));
});
};
exports.monochromeImg = async (buf) => {
return new Promise((resolve,reject) => {
gm(buf).monochrome().noprofile().toBuffer((err,buffer) => err ? reject(err) : resolve(buffer));
});
};
然后将二进制文件/缓冲区传递给s3上载,这是有效的。如果调整大小有效。
我也曾尝试将缓冲区写入fs,但是那里也没有运气。
const resized = await resizeImg(buffer,200,200);
imagemagick仍然可以使用吗?还是我应该只使用夏普?