增加图形魔术中第一张图像的长度

Increase the length of first image in graphics magick

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

图片说明

+---+---+---+---+
| 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);
        });

我想要这个输出作为例子:

您的调整大小问题是由于将 .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);
    });

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