用户:
飒天查看:72 回复:1 评论:7 创建时间:2020-02-13T19:05:46
大家看一下这个点阵照片墙,报错显示被除数不能为零,那个大佬修改一下?
import os
from PIL import Image
myDir = 'gnx'
files = os.listdir(myDir)
# 常见的图片类型
images_ext = [".png", ".jpg", ".bmp", ".jpeg", ".gif"]
images = []
for file in files:
name, ext = os.path.splitext(file)
if ext in images_ext and 'gnx' in name:
img = Image.open(myDir+os.sep+file)
_img = img.resize((300, 300))
images.append(_img)
style =[[0, 1, 0, 1, 0],
[0, 1, 1, 1, 0],
[1, 1, 1, 1, 1],
[0, 1, 1, 1, 0],
[0, 0, 1, 0, 0]]
row = 5
col = 5
# 创建空白图片
board = Image.new('RGBA', (300*col, 300*row))
# 粘贴图片
for i in range(row):
for j in range(col):
# 点阵判断
if style[i][j] == 1:
index = j + col*i
board.paste(images[index %len(images)], (j*300, i*300))
# 保存图片
board.save('wang.png')
墨绿色的雨for i in range(row):点赞0
评论
这个地方建议改一下,因为row的值为5,Python会从0开始运算i这个变量
修改建议是将括号内改成(1,row)
不过这样i只会运行4次,如果要修改运行次数请将row的值增加或减少
不不错误是出在board.paste哪一行,报错提示被除数不能为零,images的长度为零,也就是说images在之前的代码里没有附上值,能不能帮忙解决这个问题?
那就给images加上一个项,别让它是个空列表,这样长度就不是0了
images在前面的代码里按理说是被附过值得,但是没有附上,这才是问题
关键是我忘了那行代码是给images赋值的了,于是就很麻烦了