给定两个图像,例如在 img(大小为 1024x768)文件夹(img1.png 和 img2.png)下,我需要调整 img2(例如 300x300)的大小并从左上角将 img1 放在 x 和 y(例如 100、200)中的img1。最终结果应该是 1024x768 大小的图像。
使用 gm ( https://github.com/aheckmann/gm ),尝试了这个:
gm('./img/img1.png')
.composite('./img/img2.png')
.geometry('300x300+100+200')
.write('resultGM.png', (err) => {
if (err) console.log(err);
});
预期(由于整个操作链)它会产生 300x300 图像。然后我尝试了这个:
gm('./img/img1.png')
.composite(
gm('./img/img2.png')
.geometry('300x300+100+200')
)
.write('resultGM.png', (err) => {
if (err) console.log(err);
});
希望复合函数接受缓冲区,但没有机会,它只接受文件路径,并给出错误。在花了 2-3 小时并阅读了几篇文章之后(只能在这里找到一些讨论:How to do composition with gm node.js?和这里:组合两个 gm 对象,同时在 graphicsMagick for NodeJS 中调整其中一个对象的大小(这个没有实际上回答这个问题),我找不到任何解决方案来使用流或缓冲区在内存中执行此操作。在写入临时文件时可以这样做。有没有人可以在内存中找到解决方案动态调整图像大小和合并图像?