【发布时间】:2017-03-29 13:15:34
【问题描述】:
给定两个图像,例如在 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 composite with gm node.js? 和这里:Combine two gm objects while resizing one of them in graphicsMagick for NodeJS(这个实际上并没有回答这个问题),我找不到任何解决方案来做到这一点使用流或缓冲区在内存中进行操作。可以在写入临时文件时执行此操作。是否有任何机构可以找到在内存中调整大小和动态合并图像的解决方案?
【问题讨论】:
标签: node.js imagemagick image-manipulation graphicsmagick gm