首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复此错误: ValueError:无法确定区域大小;使用4项框?

如何修复此错误: ValueError:无法确定区域大小;使用4项框?
EN

Stack Overflow用户
提问于 2022-09-06 18:10:55
回答 1查看 179关注 0票数 0

我正在写一个脚本,从一个文件夹中获取10k图像,并将它们拼贴成100行。每幅图像为32x32像素。这就是我写的剧本:

代码语言:javascript
运行
复制
import glob
from PIL import Image, ImageDraw

#creates an Image based on given pixel size
collage = Image.new("RGBA", (3200,3200), color=(255,255,255,255))
images = glob.glob("*.png")
for image in images:
    img = Image.open(image)
    x = img.convert("RGBA")
    print(x)
#takes each image from the given directory above and merges it into a collage
for i in range(0,3200,32):
    for j in range(0,3200,32):
        img = images.pop()
        collage.paste(img, (i,j))

#displays output of collage
collage.show()

#saves Image to given directory
collage.save(r"C:\Users\17379\Desktop\Nouns DAO\Noun assets\noun"+image)

但是当我运行它时,我会得到这样的错误:

代码语言:javascript
运行
复制
ValueError: cannot determine region size; use 4-item box

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-09-06 18:13:36

images是一个文件名列表。你确实在你的第一个循环中加载了它们,但是你永远不会把图像保存在任何地方--你把它们扔掉。因此,在第二个循环中,您要将文件名传递给collage.paste,而不是图像对象。

也许:

代码语言:javascript
运行
复制
images = glob.glob("*.png")
images = [Image.open(image).convert("RGBA") for image in images]
for i in range(0,3200,32):
    for j in range(0,3200,32):
        img = images.pop()
        collage.paste(img, (i,j))

还请记住,.pop()是从最后弹出的。如果你想要图像有序,你需要.pop(0)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73626204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档