#python #python-imaging-library
Вопрос:
Таким образом, мы в основном должны делать коробки, выглядящие так, с подушкой: [введите описание изображения здесь] 1 Коробки должны формироваться случайным образом.
def draw_quilt():
width = 400
height = 400
grid_size = width / 4
img = Image.new("RGB", (width, height))
draw = ImageDraw.Draw(img)
r = 0; g = 192; b = 192
for higher_y in range(0, height, grid_size):
lower_y = higher_y-grid_size
r = 10; g-= 10; b-= 10
for higher_x in range(0,width, grid_size):
lower_x = higher_x grid_size
draw_patches(draw, int(grid_size / randomint(1,3), top_x, top_y, bottom_x, bottom_y, (r, g, b))
def draw_patches(draw, patch_width, start_x, start_y, end_x, end_y, color):
r = color[0]; g = color[1]; b = color[2]
for top_y in range(start_y, end_y, patch_width):
r = 10; g = 5; b = 3
bottom_y = top_y patch_width
for top_x in range(start_x, end_x, patch_width):
r = 10; g = 5; b = 3
bottom_x = top_x patch_width
draw.rectangle((top_x, top_y, bottom_x, bottom_y), fill = (r, g, b))
if __name__ == "__main__":
img = Image.new("RGB", (width, height))
draw = ImageDraw.Draw(img)
draw_quilt()
img.save('question4.png')
img.show()
Я не совсем уверен в том, что не так, но на экране постоянно появляется «Синтаксическая ошибка»
Ответ №1:
Вы пропускаете закрытие )
в конце этой строки:
draw_patches(draw, int(grid_size / randomint(1,3), top_x, top_y, bottom_x, bottom_y, (r, g, b))
То SyntaxError
, что вы получаете, находится в строке, которая содержит def draw_patches
, но фактическая ошибка-это предыдущая строка.
Комментарии:
1. @sj95162 немного изменил код, теперь ошибок нет, но он ничего не рисует (я поместил новый код ниже).
Ответ №2:
def draw_quilt():
width = 400
height = 400
grid_size = int(width / 4)
img = Image.new("RGB", (width, height))
draw = ImageDraw.Draw(img)
r = 150; g = 299; b = 299
for top_y in range(0, height, grid_size):
r = 10; g = 5; b = 3
bottom_y = top_y grid_size
for top_x in range(0, width, grid_size):
r = 10; g = 5; b = 3
bottom_x = top_x grid_size
draw_patches(draw, int(grid_size // randint(1,3)), top_x, top_y, bottom_x, bottom_y, (r, g, b))
def draw_patches(draw, patch_width, start_x, start_y, end_x, end_y, color):
r = color[0]; g = color[1]; b = color[2]
for top_y in range(start_y, end_y, patch_width):
r = 10; g = 5; b = 3
bottom_y = top_y patch_width
for top_x in range(start_x, end_x, patch_width):
r = 10; g = 5; b = 3
bottom_x = top_x patch_width
draw.rectangle((top_x, top_y, bottom_x, bottom_y), fill = (r, g, b))
if __name__ == "__main__":
img = Image.new("RGB", (width, height))
draw = ImageDraw.Draw(img)
draw_quilt()
img.save('question4.png')
img.show()