python tkinter canvas如何实现在已有的image上再添加一个image
时间: 2023-07-15 22:13:57 浏览: 52
要在已有的image上添加一个新的image,可以使用`create_image()`方法。具体步骤如下:
1. 先在canvas上创建一个image,可以使用`create_image()`方法,将其保存在变量`image_id`中。
2. 通过`tkinter.PhotoImage()`方法创建一个新的image,将其保存在变量`new_image`中。
3. 使用`canvas.coords()`方法获取`image_id`的位置,保存在变量`coords`中。
4. 使用`canvas.create_image()`方法,在`coords`的位置上创建一个新的image,将其保存在变量`new_image_id`中。
完整代码示例:
```python
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.pack()
# 创建第一个image
image = tk.PhotoImage(file="image1.gif")
image_id = canvas.create_image(0, 0, image=image, anchor="nw")
# 创建第二个image
new_image = tk.PhotoImage(file="image2.gif")
coords = canvas.coords(image_id)
new_image_id = canvas.create_image(coords[0] + 50, coords[1] + 50, image=new_image, anchor="nw")
root.mainloop()
```
在上面的代码中,我们先创建了一个名为`image`的image,并将其保存在变量`image_id`中。然后,我们创建了另一个名为`new_image`的image,并使用`canvas.create_image()`方法,在`image_id`的位置上创建了一个新的image,并将其保存在变量`new_image_id`中。注意,我们在`coords`的基础上加了一些偏移量,以便将新的image放置在`image`的旁边。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)