最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python的ImageTk.PhotoImage大坑及解決

 更新時(shí)間:2022年11月30日 16:37:02   作者:_less is more  
這篇文章主要介紹了python的ImageTk.PhotoImage大坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python的ImageTk.PhotoImage大坑

如果大家遇到這樣的報(bào)錯(cuò):

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\數(shù)字實(shí)驗(yàn)備份\結(jié)課實(shí)驗(yàn)\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

網(wǎng)上很多教程的方法我也試過(guò),沒(méi)有用,也調(diào)試不出為什么

這里有個(gè)很關(guān)鍵的信息:Cannot handle this data type

說(shuō)明是數(shù)據(jù)的類(lèi)型錯(cuò)了,但再三檢查后,明明就是帶入的<class ‘numpy.ndarray’>類(lèi)型

所以,大坑來(lái)了

請(qǐng)仔細(xì)檢查自己array里面每個(gè)數(shù)的類(lèi)型,它必須是<class ‘numpy.uint8’>,否則就會(huì)報(bào)錯(cuò)

可以這樣改:

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

Tkinter PhotoImage 踩坑記錄

1.直接使用PhotoImage(file= ‘xxxx’)報(bào)錯(cuò):_tkinter.TclError: couldn’t recognize data in image file “xxxxx.png”

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

解決辦法:使用PILLOW庫(kù)的ImageTk

  • 1.如果沒(méi)有安裝PILLOW插件,請(qǐng)安裝插件,使用 “pip install PILLOW”命令安裝即可
  • 2.生成PhotoImage對(duì)象:

代碼:

from PIL import Image

from PIL import ImageTk

img = Image.open(filePath)

img = ImageTk.PhotoImage(img)

2.PhotoImage顯示問(wèn)題:顯示空白框,大小是圖片的真實(shí)大小

原因:見(jiàn)https://docs.Python.org/2/library/tkinter.html#images,說(shuō)白了就是圖像數(shù)據(jù)引用被回收了圖片就顯示不出來(lái)了,只會(huì)顯示一個(gè)空box。

解決辦法:保存PhotoImage對(duì)象即可,示例代碼如下:

代碼:

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題

    解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題

    這篇文章主要介紹了解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python繪圖實(shí)現(xiàn)臺(tái)風(fēng)路徑可視化代碼實(shí)例

    Python繪圖實(shí)現(xiàn)臺(tái)風(fēng)路徑可視化代碼實(shí)例

    這篇文章主要介紹了Python繪圖實(shí)現(xiàn)臺(tái)風(fēng)路徑可視化代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 雙目測(cè)距python實(shí)現(xiàn)方法實(shí)戰(zhàn)(含標(biāo)定)

    雙目測(cè)距python實(shí)現(xiàn)方法實(shí)戰(zhàn)(含標(biāo)定)

    相機(jī)標(biāo)定對(duì)于雙目視覺(jué)系統(tǒng)至關(guān)重要,它涉及到獲取左右相機(jī)的內(nèi)參矩陣、畸變系數(shù)、旋轉(zhuǎn)矩陣和平移向量等關(guān)鍵參數(shù),這篇文章主要介紹了雙目測(cè)距python實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python使用GeekConcurrent實(shí)現(xiàn)量化編程

    Python使用GeekConcurrent實(shí)現(xiàn)量化編程

    這篇文章主要為大家詳細(xì)介紹了Python中的協(xié)程并發(fā)編程以及如何使用GeekConcurrent庫(kù)來(lái)實(shí)現(xiàn)面向量化編程,感興趣的小伙伴可以了解一下
    2025-02-02
  • python中快速進(jìn)行多個(gè)字符替換的方法小結(jié)

    python中快速進(jìn)行多個(gè)字符替換的方法小結(jié)

    最近在用python給自己的seo工作提高效率和節(jié)省時(shí)間,發(fā)現(xiàn)python真的很不錯(cuò),可以完成很多事情。多個(gè)字符替換是大家可能都會(huì)遇到的一個(gè)問(wèn)題,昨天在工作中就碰到了這么一個(gè)問(wèn)題,所以想著記錄一下解決方案及其過(guò)程,方便以后參考。下面來(lái)一起看看吧。
    2016-12-12
  • 使用豆瓣源來(lái)安裝python中的第三方庫(kù)方法

    使用豆瓣源來(lái)安裝python中的第三方庫(kù)方法

    這篇文章主要介紹了使用豆瓣源來(lái)安裝python中的第三方庫(kù)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python繪制牛奶凍曲線(高木曲線)案例

    Python繪制牛奶凍曲線(高木曲線)案例

    這篇文章主要介紹了Python繪制牛奶凍曲線(高木曲線)案例,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Python中的Selenium異常處理

    Python中的Selenium異常處理

    這篇文章介紹了Python中的Selenium異常處理,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python類(lèi)的高級(jí)函數(shù)詳解

    Python類(lèi)的高級(jí)函數(shù)詳解

    這篇文章主要介紹了Python類(lèi)的高級(jí)函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python如何獲取列表中每個(gè)元素的下標(biāo)位置

    python如何獲取列表中每個(gè)元素的下標(biāo)位置

    這篇文章主要介紹了python如何獲取列表中每個(gè)元素的下標(biāo)位置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

拜泉县| 嘉定区| 天台县| 肃宁县| 神农架林区| 仪陇县| 大丰市| 东兰县| 新兴县| 江口县| 县级市| 靖宇县| 广平县| 太原市| 丰台区| 栾城县| 延安市| 都安| 类乌齐县| 柘荣县| 即墨市| 织金县| 舒城县| 霍山县| 南投县| 安新县| 龙山县| 莱芜市| 山丹县| 巴东县| 南投市| 广东省| 克拉玛依市| 翁源县| 如东县| 曲松县| 洛阳市| 兰考县| 岳池县| 东城区| 朝阳县|