-->

拼接图像与实:graphicsmagick追加()(Stitching images with ap

2019-09-22 03:54发布

我有大量存储需要被显示在单个网页上作为某种其中单个元件可以显示或隐藏动态的马赛克在单独的服务器上的图像。

这些图像应该被取出,调整大小,然后缝合在一起作为子画面,并且用作上的div背景图像。 获取和调整大小非问题,在这一点上,作为最大的障碍是理解append方法,或者说如何将图像添加到组,才能使用该方法。

根据文档:

gm("img.png").append(ltr)

应该:

Append a set of images

如何获得多个图像变成了“套”?

Answer 1:

尽我所能去做,结果如下...

var gm = require('gm')

gm('@images.txt')
  .append()
  .write('crazy.png', function (err) {
    if (!err) console.log('crazytown has arrived');
  })

其中images.txt是图像追加列表。

至今尚未能想出如何通过一组比的图像列表文件等图像。

得到了来自该网站的想法- http://www.graphicsmagick.org/GraphicsMagick.html

当运行一个命令行工具,你可以在符号@前面加上了一个文件名从文件中读取图像文件名的>列表。 这是在你有太多的>图像文件名以适合在命令行上的事件方便。

希望帮助LEET



Answer 2:

比方说, images是路径字符串像这样的数组:

[ "/home/user/first.jpg", "/home/user/a.png", "/home/user/another.gif" ];

那么这应该工作:

var gm = require('gm');

var gmstate = gm(images[0]);
for (var i = 1; i < images.length; i++) gmstate.append(images[i]);

// finally write out the file asynchronously
gmstate.write('/home/user/result.png', function (err) {
  if (!err) console.log('Hooray!');
});

我们的想法是:

  1. 开始用实:graphicsmagick状态变量gmstate
  2. 追加到它在一个循环同步。
  3. write()做实际的工作,这是异步的。

这相当于gm('first').append('second').append('third')....append('last')

也许有可能开始与空的状态: var gmstate = gm();

我不得不承认, @在LeeNX的答案文件清单:黑客是一个容易得多,如果你有一个文件列表,但如果你不...?

编辑:如果您需要将图像水平追加,添加第二个参数, trueappend()就像这样:

gmstate.append(image, true);

来源: 用于文档append()



文章来源: Stitching images with append() in graphicsmagick