将多张图片合并为一张,并按字母顺序对齐

时间:2017-06-20 13:16:57

标签: image alignment gimp inkscape

我有一个装满图片的文件夹,我希望将它们组合成一张图片,彼此相邻。 我试着用Inkscape和Gimp找到如何做到这一点,但我得到的最好的是对齐选项,我手动必须导入,选择然后对齐所有...

有办法吗?否则,任何其他可以做到这一点的免费软件?

一个例子:说我有图片文件1,2,3和4.我想要的结果就像 1234< - 所有这一切都在一张图片中没有任何间隙,并且彼此相邻排列

1
2
3
4

即。将它们放在彼此之上将是另一个很好的选择。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用GIMP创建它是可能的,但不是开箱即用的 - 它需要你创建一个Python插件来完成它。既然imagemagick对你有用,那么到目前为止一切顺利。但是如果你需要自定义输出,请查看一些Python插件示例,以及GIMP中的Help->Procedure Browser选项,它显示了对GIMP API的所有可用调用。然后,您需要编写代码:

  • 在GIMP中创建一个空图像
  • 遍历文件夹中的所有图像文件:
    • 在GIMP(pdb.gimp_file_load
    • 中加载图片
    • 考虑到加载的图片尺寸(pdb.gimp_image_resize
    • ,扩展您的目标图片
    • (可选择重新缩放加载的图像)
    • pdb.gimp_edit_copy_visible()在加载的图像上,粘贴,启动到新图层,并在目标图像上的适当偏移位置。
    • 在加载下一张图像之前,调用pdb.gimp_image_delete从GIMP内存中删除已加载的图像。
  • 保存生成的图像。

如果您想按照任何内部属性对图像进行排序,则会更复杂 - 您必须首先加载它们并确定顺序。但是如果你想按文件名排序,那么在循环浏览文件夹的图像时使用python的sorted是一件简单的事情:

for image_name in sorted(os.listdir(your_folder)):
   if not image_name.lower.endswith(('jpg', 'png', ...)): continue
   ...