Python:从文件夹导入多个图像并将它们缩放/组合成一个图像?

时间:2012-07-06 18:59:13

标签: python image python-3.x scaling pixel

我有一个脚本可以将8到12张图像保存到本地文件夹。这些图像总是GIF。我正在寻找一个python脚本,将该特定文件夹中的所有图像合并为一个图像。组合的8-12幅图像必须按比例缩小,但我不想妥协图像的原始质量(分辨率)(即,当放大组合图像时,它们看起来就像它们最初那样)< / p>

我目前能够做到这一点的唯一方法是将每个图像复制到功率点。

这可能与python(或任何其他语言,但最好是python)?

作为脚本的输入,我会输入只存储图像的路径(即C:\ Documents and Settings \ user \ My Documents \ My Pictures \ BearImages)

编辑:我下载了ImageMagick,并一直在使用python api和命令行。这个简单的命令非常适合我想要的:montage "*.gif" -tile x4 -geometry +1+1 -background none combine.gif

4 个答案:

答案 0 :(得分:1)

如果您希望能够放大图像,则想要缩放它们。您将不得不依赖图像查看器在显示时进行缩放 - 这就是PowerPoint现在正在为您做的事情。

输入图像是GIF,因此它们都包含一个调色板来描述图像中的颜色。如果您的图像并非都具有相同的调色板,则在组合它们之前,您需要将它们转换为24位颜色。这意味着输出不能是另一个GIF;好的选择是PNG或JPG,取决于你是否可以容忍图像质量的一点损失。

您可以使用PIL来读取图像,合并图像并编写结果。您需要创建一个与最终结果大小相同的新图像,并将每个较小的图像复制到其中的不同部分。

答案 1 :(得分:0)

查看Python Imaging Library handbook包含两个打开文件的示例,将它们组合起来并保存结果。

答案 2 :(得分:0)

您可能希望将图像处理部件外包给ImageMagick。它有montage command可以让你获得90%的路径;只需传递一些选项和目录中文件的名称。

答案 3 :(得分:0)

最简单的方法是将图像转换为numpy矩阵,然后构建一个新的,更大的numpy矩阵来容纳所有这些矩阵。然后将np矩阵转换回图像。当然它会很大,所以你可能想要缩减采样。