返回顶部
首页 > 资讯 > 后端开发 > Python >python的ImageTk.PhotoImage坑怎么解决
  • 287
分享到

python的ImageTk.PhotoImage坑怎么解决

2023-07-04 16:07:52 287人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python的ImageTk.PhotoImage坑怎么解决”,在日常操作中,相信很多人在Python的ImageTk.PhotoImage坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

这篇文章主要介绍“python的ImageTk.PhotoImage坑怎么解决”,在日常操作中,相信很多人在Python的ImageTk.PhotoImage坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python的ImageTk.PhotoImage坑怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

python的ImageTk.PhotoImage大坑

如果大家遇到这样的报错:

Exception in Tkinter callback
Traceback (most recent call last):
  File "E:\Anaconda3_files\lib\site-packages\PIL\Image.py", line 2515, in fromarray
    mode, rawmode = _fromarray_typemap[typekey]
KeyError: ((1, 1, 3), '<f8')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\Anaconda3_files\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "D:\JuNIOr spring\Digital Image Processing and Experiment\数字实验备份\结课实验\ImgProcessing.py", line 806, in Sobel_Sharpening
    image = ImageTk.PhotoImage(Image.fromarray(img))
  File "E:\Anaconda3_files\lib\site-packages\PIL\Image.py", line 2517, in fromarray
    raise TypeError("Cannot handle this data type")
TypeError: Cannot handle this data type

网上很多教程的方法我也试过,没有用,也调试不出为什么

这里有个很关键的信息:Cannot handle this data type

说明是数据的类型错了,但再三检查后,明明就是带入的<class &lsquo;numpy.ndarray&rsquo;>类型

所以,大坑来了

请仔细检查自己array里面每个数的类型,它必须是<class &lsquo;numpy.uint8&rsquo;>,否则就会报错

可以这样改:

dst = dst.astype(np.uint8)image = ImageTk.PhotoImage(Image.fromarray(dst))

Tkinter PhotoImage 踩坑记录

1.直接使用PhotoImage(file= &lsquo;xxxx&rsquo;)报错:_tkinter.TclError: couldn&rsquo;t recognize data in image file “xxxxx.png”

原因:PhotoImage支持的图片格式有限。

解决办法:使用PILLOW库的ImageTk

  • 如果没有安装PILLOW插件,请安装插件,使用 “pip install PILLOW”命令安装即可

  • 生成PhotoImage对象:

代码:

from PIL import Imagefrom PIL import ImageTkimg = Image.open(filePath)img = ImageTk.PhotoImage(img)

2.PhotoImage显示问题:显示空白框,大小是图片的真实大小

原因:说白了就是图像数据引用被回收了图片就显示不出来了,只会显示一个空box。

解决办法:保存PhotoImage对象即可,示例代码如下:

代码:

imgDict = {}def getImgWidget(filePath):    if os.path.exists(filePath) and os.path.isfile(filePath):        if filePath in imgDict and imgDict[filePath]:            return imgDict[filePath]        img = Image.open(filePath)        #print(img.size)        img = ImageTk.PhotoImage(img)        imgDict[filePath] = img        return img    return None

到此,关于“python的ImageTk.PhotoImage坑怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: python的ImageTk.PhotoImage坑怎么解决

本文链接: https://lsjlt.com/news/346519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python的ImageTk.PhotoImage坑怎么解决
    这篇文章主要介绍“python的ImageTk.PhotoImage坑怎么解决”,在日常操作中,相信很多人在python的ImageTk.PhotoImage坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-04
  • python中os.path.exits()的坑怎么解决
    问题有时候我们经常会看到类似的代码:assert os.path.isdir(path_model_dir) assert os.path.exits(path_model_dir)如果填写一个相对路径作为path_model_dir,那将...
    99+
    2023-05-16
    Python
  • mybatisplus的坑怎么解决
    这篇文章主要讲解了“mybatisplus的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatisplus的坑怎么解决”吧!mybatisplus的坑 insert标签ins...
    99+
    2023-06-21
  • Python多维列表中的坑怎么解决
    数组常用想法总结:(以下默认nums为数组。) 1.遍历数组 遍历:for num in nums: xxxx带索引遍历for idx,num in enumerate(nums): xxxx2.动态规划(dp) 动态规划一般可以用一个...
    99+
    2023-05-14
    Python
  • 怎么解决Static坑
    这篇文章主要介绍“怎么解决Static坑”,在日常操作中,相信很多人在怎么解决Static坑问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决Static坑”的疑惑有所帮...
    99+
    2024-04-02
  • Golang的strings.Split()坑怎么解决
    这篇文章主要介绍“Golang的strings.Split()坑怎么解决”,在日常操作中,相信很多人在Golang的strings.Split()坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Gol...
    99+
    2023-06-30
  • mybatis的test坑怎么解决
    今天小编给大家分享一下mybatis的test坑怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。概述mybatis使用...
    99+
    2023-07-05
  • 爬坑记:解决Python的urllib3
    1、问题:项目中在使用itchat发送文件时发现包含中文字符的文件会无法正常发送 2、分析:ithcat发送文件使用urllib3,而urllib3确实存在中文编码问题 3、解决:找到 D:\Python36\Lib\site-packa...
    99+
    2023-01-30
    爬坑记 Python
  • MySQL索引的坑怎么解决
    今天小编给大家分享一下MySQL索引的坑怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2024-04-02
  • ParallelStream使用的坑怎么解决
    今天小编给大家分享一下ParallelStream使用的坑怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。比如下面的代...
    99+
    2023-06-17
  • 使用aot的坑怎么解决
    本篇内容主要讲解“使用aot的坑怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用aot的坑怎么解决”吧!启动参数固定化jaotc可以通过加-J参数来指定jvm的启动参数。我们尝试使用c...
    99+
    2023-06-03
  • thinkphp6安装的坑怎么解决
    这篇文章主要介绍“thinkphp6安装的坑怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp6安装的坑怎么解决”文章能帮助大家解决问题。大坑==phpstudy 网站那 要关了...
    99+
    2023-06-30
  • mysql order by limit的坑怎么解决
    这篇文章主要介绍“mysql order by limit的坑怎么解决”,在日常操作中,相信很多人在mysql order by limit的坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • springboot中用undertow的坑怎么解决
    这篇“springboot中用undertow的坑怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot...
    99+
    2023-06-29
  • Java中new BigDecimal()的坑怎么解决
    今天小编给大家分享一下Java中new BigDecimal()的坑怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-07-02
  • Java Bean转Map的坑怎么解决
    本篇内容介绍了“Java Bean转Map的坑怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、背景有些业务场景下需要将 ...
    99+
    2023-07-02
  • React Hooks与setInterval的坑怎么解决
    这篇文章主要讲解了“React Hooks与setInterval的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React Hooks与setInterval...
    99+
    2023-06-30
  • MybatisPlus+Postgresql整合的坑怎么解决
    本篇内容主要讲解“MybatisPlus+Postgresql整合的坑怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MybatisPlus+Postgresql整合的坑怎么解决”吧!基础...
    99+
    2023-07-05
  • Python列表和字典踩坑问题怎么解决
    这篇“Python列表和字典踩坑问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python列表和字典踩坑问题怎么...
    99+
    2023-06-30
  • ElementUI中tree控件的坑怎么解决
    这篇文章主要讲解了“ElementUI中tree控件的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ElementUI中tree控件的坑怎么解决”吧!一句话总结,就是很好很强大。但...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作