Я пытаюсь вставить несколько изображений по наибольшему размеру изображения. Но я не знаю, как это сделать. Я пытался, но безуспешно. Например, я хочу вставить их: первое изображение будет самым большим, а второе - самым большим после первого изображения и т. Д. c ...
for dirpath, dirs, filenames in os.walk('.'):
images = [Image.open(file) for file in list(filenames)]
sizes = max([Image.open(f, 'r').size for f in list(filenames)])
widths, heights = zip(*(i.size for i in images))
for file in filenames:
img_open = Image.open(file)
w, h = img_open.size
total_width = sum(widths)
max_height = max(heights)
new_im = Image.new('RGBA', (int(q_w), int(q_h)))
new_im1 = Image.new('RGBA', (int(q_w), int(q_h)))
new_im2 = Image.new('RGBA', (int(q_w), int(q_h)))
x_offset = 0
y = 0
i = 0
k = 0
u = 0
os.chdir('../')
for b,im in enumerate(images):
ww, hh = list(zip(*(im.size for im in images)))
www, hhh = im.size
new.append(www)
print(www)
max_w = max(ww)
min_w = min(ww)
try:
if im.size == sizes[b]:
new_im.paste(im, (x_offset,y))
else:
continue
with open('x.txt', 'a') as file:
file.write(str(x_offset) + "\n")
with open('y.txt', 'a') as file:
file.write(str(y) + "\n")
with open('w.txt', 'a') as file:
file.write(str(www) + "\n")
with open('h.txt', 'a') as file:
file.write(str(hhh) + "\n")
x_offset += im.size[0]
sizes.remove(b)
if x_offset > int(q_w) - max_w:
x_offset =0
y_test = 0
i = b
hh_for = hh[u:i+1]
b = u
u = i +1
max_h = max(hh_for)
y += max_h
0
if y > int(q_h) - max_h:
break
print(b)
except:
continue