【问题标题】:Combine two gm objects while resizing one of them in graphicsMagick for NodeJS合并两个 gm 对象,同时在 graphicsMagick for NodeJS 中调整其中一个对象的大小
【发布时间】:2014-12-03 17:33:05
【问题描述】:
 var image = gm(someImageUrl)
 .resize(100,100);

 var drawings = gm(200,200,'red')
 .fill('blue')
 .drawRectangle(20,20,40,40);

 // Would be great to have sth like this. 
 drawings.drawImage(image, position)
 // or
 drawings.add(image, position)
 // or
 drawings.draw(image, position)

追加不是一个选项,因为我希望它们重叠并为图像设置精确位置

【问题讨论】:

    标签: node.js graphicsmagick


    【解决方案1】:

    这可以通过使用组合选项(即 gm() 对象上的 command()in() 函数来实现返回),它们本质上是您将传递给 shell 的选项标志。

    例如:

    gm()
    .command("composite") 
    .in("-gravity", "center")
    .in(change_image_url)
    .in(base_image_url)
    .write(out_file, function (e) {
      if (!e) {
        console.log('this worked');
      } else {
        console.log(err);
      }
    });
    

    但是,需要注意的是流和缓冲区不能利用它们,因为命令行选项需要原始文件输入。如果您希望输入 URL,这可能适用于您的情况。

    尝试查看node-canvas 以了解实际的绘图 功能。您可以添加图像对象,然后使用 createPngStream 创建 Graphics Magick 可以读取的流,以进行任何最后一分钟的编辑/抗锯齿调整。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2021-01-24
      • 2019-07-19
      • 2018-04-21
      • 2017-04-07
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多