Мне нужно чтобы функция определяла длину и создавала коллаж в любом количество хоть это будет 9 штук, фотки квадратные, значит если фоток 3, то 4 фоткой будет Image.open(f"Photo/WhiteNull.png")
ИНТЕРФЕЙС
если 1 фотка в массиве - 1 фотка
если 2 фотка в массиве - 2 фотки в ряд
если 3 фотка в массиве - 2 ряда и 2 столбца, 4 будет пустой белый
если 4 фотка в массиве - 2 ряда и 2 столбца
если 5 фотка в массиве - 3 ряда и 2 столбца, 6 будет пустой белый
если 6 фотка в массиве - 3 ряда и 2 столбца
если 7 фотка в массиве - 2 ряда и 4 столбца, 8 фоткой будет пустой белый
если 8 фотка в массиве - 2 ряда и 4 столбца
если 9 фотка в массиве - 3 ряда и 3 столбца
9 это максимум
______________
НА каждой фотке свой номер по добавлению 1, 2, 3, 4 , 5
def CollageImage(IndexTovar, UserID):
if len(IndexTovar) == 4 or len(IndexTovar) == 3:
font = ImageFont.truetype("Photo/Font/Samson.ttf", 50)
positionX = 20
positionY = 90
img1 = Image.open(f"Photo/{IndexTovar[0]}.png")
img2 = Image.open(f"Photo/{IndexTovar[1]}.png")
img3 = Image.open(f"Photo/{IndexTovar[2]}.png")
if len(IndexTovar) == 4:
img4 = Image.open(f"Photo/{IndexTovar[3]}.png")
else:
img4 = Image.open(f"Photo/WhiteNull.png")
# Ставка номеров на изображение
ImageDraw.Draw(img1).text((positionX, positionY), "1", font=font, fill='black', embedded_color=True)
ImageDraw.Draw(img2).text((positionX, positionY), "2", font=font, fill='black')
ImageDraw.Draw(img3).text((positionX, positionY), "3", font=font, fill='black')
if len(IndexTovar) == 4:
ImageDraw.Draw(img4).text((positionX, positionY), "4", font=font, fill='black')
img1_arr = np.array(img1)
img2_arr = np.array(img2)
img3_arr = np.array(img3)
img4_arr = np.array(img4)
Image.fromarray(np.vstack([np.hstack([img1_arr, img2_arr]), np.hstack([img3_arr, img4_arr])])).save(
f"Photo/UsersColage/{UserID}.png")
elif len(IndexTovar) == 2:
img1_arr = np.array(Image.open(f"Photo/{IndexTovar[0]}.png"))
img2_arr = np.array(Image.open(f"Photo/{IndexTovar[1]}.png"))
Image.fromarray(np.vstack([img1_arr, img2_arr])).save(
f"Photo/UsersColage/{UserID}.png")
elif len(IndexTovar) == 1:
Image.open(f"Photo/{IndexTovar[0]}.png").save(f"Photo/UsersColage/{UserID}.png")
else:
print(IndexTovar, "Ошибка колажа")