【问题标题】:Increase the length of first image in graphics magick增加图形魔术中第一张图像的长度
【发布时间】:2016-05-24 09:10:25
【问题描述】:

我正在尝试增加第一张图片的长度我有三张合并的图片,在第一张图片下方显示一个白框,但我希望该白框被整个第一张图片覆盖。增加第一张图像的长度可能是可能的,我尝试使用调整大小,但没有奏效。下面是代码。如图所示,黑色图像下方有一个白色框,我希望黑色图像通过增加其长度来覆盖该空白区域。

图片说明

+---+---+---+---+
| user1 | user2 |
|       |---+---+
|       | user3 |
+---+---+---+---+

        gm()
        .in('-page', '+0+0')
        .resize(50,100,"!")
        .in('http://localhost:8080/user1')
        .resize(50,100)
        .in('-page', '+50+0')
        .in('http://localhost:8080/user2')
        .in('-page', '+50+50')
        .in('http://localhost:8080/user3')
        .mosaic()
        .write('C:/images/output1.jpg', function (err) {
            if (err) console.log(err);
        });

我想以这个输出为例:

【问题讨论】:

  • 您应该提供一些图像示例来说明源图像、您想要发生的事情以及实际发生的事情。从文字描述中很难想象出你想要什么。
  • @NeilSlater,我已经编辑了我的问题
  • 这是你想要的吗?您想要放置的原始图像是什么形状/大小,实际发生了什么?这个例子没问题,但如果它使用图像而不是 ASCII 表示可能会更清楚。
  • @NeilSlater,形状为正方形图片,大小为 50 x 50,共有三张图片合并,第一张图片将在左侧显示到最后,上下两张图片将显示它们都与第一个合并并进一步合并。我会尝试用原始图像编辑问题。
  • @NeilSlater,我已经用图片更新了问题

标签: node.js image imagemagick graphicsmagick


【解决方案1】:

您的调整大小问题是由 .in() 直接在命令行中插入内容的方法与 graphicsmagic 库方法混合引起的,这些方法在做什么时应用了一些额外的启发式方法。添加.resize 会尝试调整主图形对象的大小(然后.mosaic 会忽略它,它会根据内容调整最终图像的大小)。

最简单的解决方案是使用基于.in() 的语法来调整大小:

    gm()
    .in('-page', '+0+0')
    .in('-resize', '50x100!')
    .in('http://localhost:8080/user1')
    .in('-page', '+50+0')
    .in('http://localhost:8080/user2')
    .in('-page', '+50+50')
    .in('http://localhost:8080/user3')
    .mosaic()
    .write('C:/images/output1.jpg', function (err) {
        if (err) console.log(err);
    });

这适用于我对本地图像的测试。

【讨论】:

  • 感谢您的支持:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多