增加图形魔法中第一个图像的长度

时间:2016-05-24 09:10:25

标签: node.js image imagemagick graphicsmagick

我正在尝试增加第一张图像的长度我有三张合并的图像,在第一张图像上它显示了一个白色的盒子,但是我希望那个白色的盒子覆盖整个第一张图像。可能会增加第一张图像的长度,我尝试使用重新调整大小,但它没有用。下面是代码。在图像中,黑色图像下面有一个白色的盒子,我希望黑色图像通过增加它的长度来覆盖那个白色空间。

图片插图

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

enter image description here

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

我想以此输出为例: enter image description here

1 个答案:

答案 0 :(得分:0)

调整大小的问题是混合使用.in()方法引起的,这些方法直接在命令行上插入了图形化库方法,这些方法对应该执行的操作应用了一些额外的启发式方法。添加.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);
    });

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