鱼C论坛

 找回密码
 立即注册
查看: 2417|回复: 12

[已解决]canvas画布无法识别图片

[复制链接]
发表于 2021-9-18 17:07:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import tkinter as tk

window=tk.Tk()
window.title('welcome to website')
window.geometry('450x300')

canvas=tk.Canvas(window,height=200,width=500)
image_file=tk.PhotoImage(file='D:\\lf.png')
image=canvas.create_image(0, 0,anchor='nw',image=image_file)
canvas.pack(side='top')

window.mainloop()@白two
最佳答案
2021-9-19 08:45:59
小伤口 发表于 2021-9-18 20:53
好家伙还真能用,我记得之前还不行的

有的行有的不行,以前一直都不行,有一次我写代码发现能用,不过不能更换,实际上还是不行,还得借助PIL
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-18 17:10:15 | 显示全部楼层
我这用你代码可以看到,会不会是你图片路径问题

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 17:18:02 | 显示全部楼层
大马强 发表于 2021-9-18 17:10
我这用你代码可以看到,会不会是你图片路径问题

我是放在D盘的,我那个路径有什么问题吗?你的这个图片是放在哪里的啊?还有就是图片的格式后缀有要求吗?比如GIF或者JPG这种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 17:57:30 From FishC Mobile | 显示全部楼层
孤山空影 发表于 2021-9-18 17:18
我是放在D盘的,我那个路径有什么问题吗?你的这个图片是放在哪里的啊?还有就是图片的格式后缀有要求吗 ...

你只用tkinter的话的确只支持gif格式的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 20:17:43 | 显示全部楼层
小伤口 发表于 2021-9-18 17:57
你只用tkinter的话的确只支持gif格式的

我png和jpg的都能用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 20:19:48 | 显示全部楼层
孤山空影 发表于 2021-9-18 17:18
我是放在D盘的,我那个路径有什么问题吗?你的这个图片是放在哪里的啊?还有就是图片的格式后缀有要求吗 ...

我的是放在同一文件夹下的,所以可以用 【./xxx 】
我那个就是png的jpg也能用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 20:53:58 | 显示全部楼层
大马强 发表于 2021-9-18 20:17
我png和jpg的都能用

好家伙还真能用,我记得之前还不行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 21:15:11 | 显示全部楼层
好像是有一个组件只能用gif的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-19 08:44:23 | 显示全部楼层
除gif格式,其他格式偶尔能用,连续不能用。也就是如果载入一张png成功了,想更换其他图片是更换不了的
想加载其他的格式的图片,需要用 PIL 模块
首先
  1. pip install Pillow
复制代码

然后将代码改成
  1. import tkinter as tk
  2. from PIL import Image, ImageTk

  3. window=tk.Tk()
  4. window.title('welcome to website')
  5. window.geometry('450x300')
  6. canvas=tk.Canvas(window,height=200,width=500)
  7. img = ImageTk.PhotoImage(Image.open(fp='D:\\lf.png'))
  8. image=canvas.create_image(0, 0,anchor='nw',image=img)
  9. canvas.pack(side='top')

  10. window.mainloop()
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-19 08:45:59 | 显示全部楼层    本楼为最佳答案   
小伤口 发表于 2021-9-18 20:53
好家伙还真能用,我记得之前还不行的

有的行有的不行,以前一直都不行,有一次我写代码发现能用,不过不能更换,实际上还是不行,还得借助PIL
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-19 10:08:01 | 显示全部楼层
所以转战pyqt了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-19 11:15:21 | 显示全部楼层

睿智啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-19 18:48:10 From FishC Mobile | 显示全部楼层
qq1151985918 发表于 2021-9-19 08:44
除gif格式,其他格式偶尔能用,连续不能用。也就是如果载入一张png成功了,想更换其他图片是更换不了的
想 ...

原来是这样呀,厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 03:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表