fbpx

Python Canvas повторяющаяся текстура

238 просмотра
0
0 Комментариев

Используя библиотеку tkinter, я создал canvas холст и теперь мне необходимо залить его содержимое некой повторяющейся текстурой.

img = ImageTk.PhotoImage('...')
canv = tkinter.Canvas(self.main, width=800, height=800, bg=img)

Подобная структура у меня работать отказалась.

Единственный выход, который я сейчас вижу это вставить БОЛЬШУЮ кучу изображений с помощью метода create_image, со сдвигом на размер прошлого изображения. Но это ведь не может быть правильный выход… Это ведь ужасно.
Питон 3

Как мне залить холст канвас виджета повторяющейся текстурой?


Добавить комментарий

1 Ответы

Python Опубликовано 19.01.2019
0

from tkinter import *
from PIL import Image,ImageTk
root = Tk()
root.geometry('800x600')
 
canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)
 
img = ImageTk.PhotoImage(file='t.png')
width = img.width()
height = img.height()
 
for x in range(0, 800 + width, width):
    for y in range(0, 600 + height, height):
        canv.create_image(x, y, image=img, anchor=SW)
 
mainloop()

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up