0

我在 amazons3 服务器上托管了图像。我的客户想要使用 amazon lambda 函数处理图像。我遵循了这个例子:http ://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser-create-test-function-create-function.html

调整大小很好。但我也想要对图像进行叠加和水印。但没有办法。我尝试过使用 imagemagick [ https://www.npmjs.com/package/gm]因为它似乎将路径作为参数和 s3 图像路径没有帮助我。我认为明显的原因是它们不能作为目录中的图像路径直接访问。

关于如何实现这一目标的任何建议。我坚持了最后 3 天,但无法继续前进。在此先感谢您的帮助!!!!

4

1 回答 1

0

看起来您正在尝试在尺寸操作中进行叠加。快速查看GitHub 上的 gm 存储库,发现一个可能的解决方案存在问题。似乎认为复合动作接受要读取的流。关于您的代码,我建议进行重构以将操作链接在一起。不过,我不确定我是否了解写入流在您的原始函数中的去向。让我知道这是否有帮助!

var scalingFactor = Math.min(
  newSize / size.width,
  newSize / size.height
);

var width  = scalingFactor * size.width;
var height = scalingFactor * size.height;

gm(response.Body)
.autoOrient()
.resize(width, height)
.gravity('SouthEast')
.draw('image Over 0,0 0,0 ' + getAppPath() + '/path/to/wm-bas.png')
.stream('PNG') // This converts the whole thing to a png, not sure if you want this
.pipe(writeStream) // Change this
于 2015-11-02T21:25:14.600 回答