给定两张图片,分别位于img文件夹下(大小为1024x768),命名为img1.png和img2.png。我需要将img2调整大小(比如300x300),并将其放置在img1的左上角,距离img1顶部和左侧各100像素。最终结果应该是一张大小为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个小时阅读了一些帖子(只能在这里找到一些讨论:如何使用gm node.js进行合成?和这里:在NodeJS的graphicsMagick中调整大小一个对象并将两个gm对象组合在一起(实际上这个不回答问题),我找不到任何流或缓冲区内存中执行此操作的解决方案。可以在写入临时文件时执行此操作。是否有人能够找到在内存中调整大小和合并图像的解决方案?