python - 画布上的图像小部件 Tkinter
问题描述
我已经几乎完成了我正在制作的游戏,但现在我想让角色四处移动,在图形上看起来比方块更好。然而,所有的代码都是这样设计的,它只适用于画布小部件(在本例中为矩形)而不适用于图像。那么,有没有办法将图像粘贴到这样的画布小部件上或用图像填充画布小部件。经过一番研究,我认为我可以用 PIL 做到这一点,但它对我不起作用。
在这种情况下使用任何提示或其他推荐的软件包?或者我应该重写我所有的代码来处理图像对象(也就是我上面问的事情是不可能的)。
解决方案
你试过这里的例子吗?
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
In this script, we draw an image
on the canvas.
Author: Jan Bodnar
Last modified: July 2017
Website: www.zetcode.com
"""
from tkinter import Tk, Canvas, Frame, BOTH, NW
from PIL import Image, ImageTk
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("High Tatras")
self.pack(fill=BOTH, expand=1)
self.img = Image.open("tatras.jpg")
self.tatras = ImageTk.PhotoImage(self.img)
canvas = Canvas(self, width=self.img.size[0]+20,
height=self.img.size[1]+20)
canvas.create_image(10, 10, anchor=NW, image=self.tatras)
canvas.pack(fill=BOTH, expand=1)
def main():
root = Tk()
ex = Example()
root.mainloop()
if __name__ == '__main__':
main()
推荐阅读
- c - 在不终止并行区域的情况下,在 For 循环中使用 OpenMP For
- ocaml - OCaml:int_of_string 错误
- json - 来自 REST API / JSON 的 Angular 5 链接
- node.js - 如何检测 NodeJS 中的文件编码?
- html - HTML中不同字体大小的左/右对齐
- excel - 对时间点使用 averageifs 函数
- ruby-on-rails - has_many :through :: HasManyThroughOrderError
- php - 数组被保存到文件中,一旦反序列化就没有正确填充
- scala - Scala Log4j 配置
- linux - 使用 mod 函数 linux 进行 rsa 加密