我在学校进行这项练习,制作一个在现有图像中绘制网格的功能。 draw_grid(img,s,c) img - 图像 s - 线的间距 c - 颜色
def draw_grid(img, s, c):
a = s
b = s
for i in range(len(img)):
for j in range(len(img[0])):
if i == a:
img[i][j] = c
if img[i][j] == c:
a = a + s
for i in range(len(img)):
for j in img[i]:
if img[i].index(j) == b:
img[i][img[i].index(j)] = c
b = b + s
im.visd(img)
import image as im
img = im.create(200, 100, (200,200,200))
使用我所拥有的代码只生成水平线。
答案 0 :(得分:0)
我认为你的问题是if img[i].index(j) == b:
,索引返回列表中第一次出现的参数的索引,但是j应该已经是索引了,而不是你要在你的内容中寻找的元素图像。
你的循环似乎太复杂,你不需要a,b或任何'if',如果你使用带有3个参数的范围,第三个参数是增量步骤:
for i in range(0, 10, 2):
print(i) # print 0, 2, 4, 6, 8
所以你可以有这样的循环:
for i in range(0, len(img), s):
for j in range(len(img[0])):
img[i][j] = c
for i in range(0, len(img[0]), s):
for j in range(len(img)):
img[j][i] = c