【问题标题】:Image on canvas widget Tkinter画布上的图像小部件 Tkinter
【发布时间】:2019-08-07 23:57:04
【问题描述】:

我已经快完成了我正在制作的游戏,但现在我想让角色四处移动,在图形上看起来比方块更好。然而,所有的代码都是这样设计的,它只适用于画布小部件(在本例中为矩形)而不适用于图像。 那么,有没有办法将图像粘贴到这样的画布小部件上或用图像填充画布小部件。经过一番研究,我认为我可以用 PIL 做到这一点,但它对我不起作用。

在这种情况下使用任何提示或其他推荐的包?或者我应该重写我所有的代码来处理图像对象(也就是我上面问的事情是不可能的)。

【问题讨论】:

  • 你能展示你的代码吗?不看就很难回答你的问题。
  • 您是否阅读过画布小部件的文档?那里记录了绘制图像的方法。
  • @Bryan Oakley 我知道如何在画布上制作图像。但我想把这张图片做成一个矩形或任何类似的形状。
  • 您是否尝试过简单地在图像周围画一个矩形?

标签: python image canvas tkinter


【解决方案1】:

你试过here这个例子吗?

#!/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()   

【讨论】:

  • 我想要做的是在画布小部件的形状中或形状顶部放置图像。这样我就不必更改任何代码。 (例如,图像将充当矩形的填充)
  • 我认为这不可能。见stackoverflow.com/questions/37373820/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多