gpt4 book ai didi

Python 3.5.1 - 为目标文件夹内的所有文件(文件类型 : . jpg)分配变量

转载 作者:行者123 更新时间:2023-11-28 22:35:24 25 4
gpt4 key购买 nike

我是 Python 的新手,有一个难题要解决:

这是我正在尝试做的 -->

  1. 我有一个文件夹(已知路径),里面有 1 - x 个图片文件 (.jpg),而 x 可以高达 1000
  2. 这些图片文件应该拼接在一起(一个在另一个之上)
  3. 为此,我希望 Python 为已知文件夹中的每个图片文件分配一个变量,然后创建一个循环,将这些变量存储的图片拼接在一起,并将其输出为 1 张图片 (.jpg)

这是我到目前为止编写的代码:

from PIL import Image
import glob

#The following GLOB part doesn't work, I tried to make a List with all the
#files (.jpg) inside the main directory
#image_list = []

#for filename in glob.glob('*.jpg'):
# test = Image.open(filename)
# image_list.append(test)

img1 = Image.open("img1.jpg")
img2 = Image.open("img2.jpg")

def merge_images(img1, img2):

(width1, height1) = img1.size
(width2, height2) = img2.size
result_width = max(width1, width2)
result_height = height1 + height2

result = Image.new('RGB', (result_width, result_height))
result.paste(im=img2, box=(0,0))
result.paste(im=img1, box=(0,height1-2890))

return result

merged = merge_images(img1, img2)
merged.save("test.jpg")

它所做的是将 img1.jpg 和 img2.jpg 分配给一个变量,然后将它们堆叠在一起,并将这张堆叠图片保存为“test.jpg”。如果我想将许多图片 (.jpg) 分配给变量并将它们堆叠在一起,而无需为每张新图片键入一行代码,我该从这里去哪里(请参阅进一步的描述?)

非常感谢您的帮助!

克里斯

最佳答案

如果您从 0x0 图像开始,您可以像这样在其上堆叠更多图像:

stacked_img = Image.new('RGB', (0, 0))

for filename in glob.glob('*.jpg'):
stacked_img = merge_images(stacked_img, Image.open(filename))

stacked_img.save('stacked.jpg')

如果您尝试堆叠第二个,您可能还想在 merge_images() 函数中将 height1-2890 更改为 height2第一张图片下方的图片,即

result.paste(im=img1, box=(0,height2))

关于Python 3.5.1 - 为目标文件夹内的所有文件(文件类型 : . jpg)分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38217688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com