python tkinter canvas如何实现在已有的image的位置上再画一个同样大小的image图像
时间: 2023-07-15 19:13:58 浏览: 251
python tkinter canvas 显示图片的示例
可以使用`create_image`方法在`Canvas`上绘制一个新的`Image`对象。首先,需要获取已有的`image`的位置和大小信息,可以使用`Canvas`的`bbox`方法获取其边界框信息。然后,将这些信息作为参数传递给`create_image`方法,以创建一个新的`Image`对象并在相同的位置上绘制它。
以下是一个示例代码:
```python
from tkinter import *
from PIL import Image, ImageTk
# 创建Canvas对象
root = Tk()
canvas = Canvas(root, width=400, height=400)
canvas.pack()
# 加载并显示原始图像
image = Image.open("path/to/image.jpg")
photo = ImageTk.PhotoImage(image)
canvas.create_image(0, 0, anchor=NW, image=photo)
# 获取原始图像的边界框信息
bbox = canvas.bbox("all")
# 在相同位置上绘制另一个图像
new_image = Image.open("path/to/new_image.jpg")
new_photo = ImageTk.PhotoImage(new_image)
canvas.create_image(bbox[0], bbox[1], anchor=NW, image=new_photo)
root.mainloop()
```
在此示例中,我们首先创建一个`Canvas`对象并在其中显示原始图像。然后,使用`bbox`方法获取原始图像的边界框信息,并将其用作创建新图像的位置参数。最后,使用`create_image`方法在相同的位置上绘制新图像。
阅读全文