我正在尝试在 Python 中水平组合一些 JPEG 图像。
问题
我有 3 张图片 - 每张都是 148 x 95 - 见附件。我刚刚制作了同一张图片的 3 个副本 - 这就是它们相同的原因。
我的尝试
我正在尝试使用以下代码水平加入它们:
import sys
from PIL import Image
list_im = ['Test1.jpg','Test2.jpg','Test3.jpg']
# creates a new empty image, RGB mode, and size 444 by 95
new_im = Image.new('RGB', (444,95))
for elem in list_im:
for i in xrange(0,444,95):
im=Image.open(elem)
new_im.paste(im, (i,0))
new_im.save('test.jpg')
但是,这会产生附加的输出 test.jpg
。
问题
有没有办法水平连接这些图像,使 test.jpg 中的子图像不显示额外的部分图像?
附加信息
我正在寻找一种水平连接 n 图像的方法。我想一般地使用此代码,所以我更愿意:
- 如果可能,不要硬编码图像尺寸
- 在一行中指定尺寸,以便可以轻松更改
原文由 edesz 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以这样做:
Test1.jpg
Test2.jpg
Test3.jpg
test.jpg
嵌套的
for i in xrange(0,444,95):
将每个图像粘贴 5 次,间隔 95 像素。每个外循环迭代粘贴在前一个上。