導航:首頁 > 圖片大全 > python如何控制圖片

python如何控制圖片

發布時間:2023-06-04 01:34:36

⑴ python tkinter怎麼用canvas實現按順序畫圖

python簡述:

Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。自從20世紀90年代初Python語言誕生至今,它逐漸被廣泛應用於處理系統管理任務和Web編程。Python[1]已經成為最受歡迎的程序設計語言之一。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。自從2004年以後,python的使用率是呈線性增長。

tkinter模塊介紹

tkinter模塊(「Tk 介面」)是Python的標准Tk GUI工具包的介面.Tk和Tkinter可以在大多數的Unix平台下使用,同樣可以應用在Windows和Macintosh系統里.,Tk8.0的後續版本可以實現本地窗口風格,並良好地運行在絕大多數平台中。

由於Tkinter是內置到python的安裝包中、只要安裝好Python之後就能import Tkinter庫、而且IDLE也是用Tkinter編寫而成、對於簡單的圖形界面Tkinter還是能應付自如。

八、顯示文字

用create_text在畫布上寫字。這個函數只需要兩個坐標(文字x和y的位置),還有一個具名參數來接受要顯示的文字。例如:

>>> from tkinter import*>>> tk = Tk()>>> canvas = Canvas(tk,width=400,height=400)>>> canvas.pack()>>> canvas.create_text(150,100,text='Happy birthday to you')

註:用tkinter只能裝入GIF圖片,也就是擴展名是.gif的圖片文件。

想要顯示其他類型的圖片,如PNG和JPG,需要用到其他的模塊,比如Python圖像庫。

十、創建基本的動畫

創建一個填了色的三角形,讓它在屏幕上橫向移動:

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=200)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創建三角形for x in range(0,60): canvas.move(1,5,0) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update() ##強制tkinter更新屏幕(重畫) time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然後再繼續

三角形橫向移動

延伸一下,如果想讓三角形沿對角線在屏幕上移動,我們可以第8行為:

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創建三角形for x in range(0,60): canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update() ##強制tkinter更新屏幕(重畫) time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然後再繼續

三角形沿對角線移動

如果要讓三角形在屏幕上沿對角線回到開始的位置,要用-5,-5(在結尾處加上這段代碼)

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創建三角形for x in range(0,60): canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update() ##強制tkinter更新屏幕(重畫) time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然後再繼續for x in range(0,60): canvas.move(1,-5,-5) tk.update() time.sleep(0.05)

對角線運動並回到初始位置

十一、讓對象對操作有反應

我們可以用「消息綁定」來讓三角形在有人按下某鍵時有反應。

要開始處理事件,我們首先要創建一個函數。當我們告訴tkinter將某個特定函數綁到(或關聯到)某個特定事件上時就完成了綁定。

換句話說,tkinter會自動調用這個函數來處理事件。

例如,要讓三角形在按下回車鍵時移動,我們可以定義這個函數:

def movetriangle(event): canvas.move(1,5,0)

這個函數只接受一個參數(event),tkinter用它來給函數傳遞關於事件的信息。現在我們用畫布canvas上的bind_all函數來告訴tkinter當特定事件發生時應該調用這個函數。代碼如下:

from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)def movetriangle(event): canvas.move(1,5,0)canvas.bind_all('<KeyPress-Return>',movetringle) ##讓tkinter監視KeyPress事件,當該事件發生時調用movetriangle函數

那麼我們如何根據按鍵的不同而改變三角形的方向呢?比如用方向鍵。

我們可以嘗試改下movetriangle函數:

def movetriangle(event): if event.keysym == 'up': canvas.move(1,0,-3) ##第一個參數使畫布上所畫的形狀的ID數字,第二個是對x(水平方向)坐標增加的值,第三個是對y(垂直方向)坐標增加的值 elif event.keysym == 'down': canvas.move(1,0,3) elif event.keysym == 'left': canvas.move(1,-3,0) else canvas.move(1,3,0)

最後代碼匯總在一起為:

from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)def movetriangle(event): if event.keysym == 'Up': canvas.move(1,0,-3) ##第一個參數使畫布上所畫的形狀的ID數字,第二個是對x(水平方向)坐標增加的值,第三個是對y(垂直方向)坐標增加的值 elif event.keysym == 'Down': canvas.move(1,0,3) elif event.keysym == 'Left': canvas.move(1,-3,0) else: canvas.move(1,3,0)canvas.bind_all('<KeyPress-Up>',movetriangle) ##讓tkinter監視KeyPress事件,當該事件發生時調用movetriangle函數canvas.bind_all('<KeyPress-Down>',movetriangle)canvas.bind_all('<KeyPress-Left>',movetriangle)canvas.bind_all('<KeyPress-Right>',movetriangle)

方向鍵控制三角形的移動

十二、更多使用ID的方法

只要用了畫布上面以create_開頭的函數,它總會返回一個ID。這個函數可以在其他的函數中使用。

如果我們修改代碼來把返回值作為一個變數保存,然後使用這個變數,那麼無論返回值是多少,這段代碼都能工作:

>>> mytriangle = canvas.create_polygon(10,10,10,60,50,35)>>> canvas.move(mytriangle,5,0)

我們可以用itemconfig來改變三角形的顏色,這需要把ID作為第一個參數:

>>> canvas.itemconfig(mytrigle,fill='bue') ##把ID為變數mytriangle中的值的對象的填充顏色改為藍色

也可以給三角形一條不同顏色的輪廓線,同樣適用ID作為第一個參數:

>>> canvas.itemconfig(mytrigle,outline='red')

總結做出了簡單的動畫。學會了如何用事件綁定來讓圖形響應按鍵,這在寫計算機游戲時很有用。在tkinter中以create開頭的函數是如何返回一個ID數字。

已經學習Python兩天,最開始是想著是通過覺得用它寫個動畫或者畫個圖形比較方便,而且界面美觀,比黑洞洞的dos窗口好多了,准備寫個程序送個一女孩作為生日禮物(去年答應好的)。經過這兩天的學習,我慢慢發覺了Python語言的優點,其最主要的就是易學,而且可以調用各種庫。

⑵ python 如何控制圖片移動

matplotlib是繪制二維圖形的Python模塊,它用Python語言實現了MATLAB畫圖函數的易用性,同時又有非常強大的可定製性

⑶ python處理圖片數據

生成一張純色的圖片

先設置圖片的顏色,接著利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設置成rgba,類似的還有rgb,L(灰度圖等),尺寸設定為640,480,這個可以根據自己的情況設定,顏色同樣如此。

⑷ python中圖例的位置怎麼手動調整

1.最近遇到一個問題,關於圖例legend如何畫在圖外的問題,並以適合的比例顯示出來。

2.首先傳統的做法如下,這種方式並不能滿足我的要橘橡圓求,而且是顯示在圖內。

ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)1

loc表示圖例的位置,有多種形式:

『North』 圖例標識放在圖頂端
『South』 圖例標識放在圖底端
『East』 圖例標識放在圖右方
『West』 圖例標識放在圖左方
『NorthEast』 圖例標識放在圖右上方(默認)
『NorthWest 圖例標識放在圖左上方
『SouthEast』 圖例標識放在圖右下角
『SouthWest』 圖例標識放在圖左下角12345678

有人說簡單,有相同的方式,如下經測試不行,可能是本人用的python版本不行,所用的方式就是和前面一樣,採用如下的方式來替換上面的legend位置。

『NorthOutside』 圖例標識放在圖框外側上方
『SouthOutside』 圖例標識放在圖框外側下方
『EastOutside』 圖例標識放在圖框外側右方
『WestOutside』 圖例標識放在圖框外側左方
『NorthEastOutside』 圖例標識放在圖框外側右上方
『NorthWestOutside』 圖例標識放在圖框外側左上方
『SouthEastOutside』 圖例標識放在圖框外側右下方
『SouthWestOutside』 圖例標識放在圖框外側左下方
(以上幾個將圖例標識放在框圖外)
『Best』 圖標標識放在圖框內不與圖沖突的最佳位置
『如擾BestOutside』 圖標標識放在圖框外使用最小空間的最佳位置1234567891011

bbox_to_anchor:表示legend的位置,前一個表示左右,後一個表示上下。當使用這個參數時。loc將不再起正常的作用,ncol=3表示圖例三列顯示。

3.有人說要解決這個問題可以採用對坐標軸放大或是縮小的方式,經本人測試可以行,但是,放大縮小的比率不讓人滿意,且很難控制到適合的位置。有興趣可以參考鏈接,最終得出此方法不行。

4.那麼就沒有辦法了嗎?NO.NO,請看下面,最終完成如下。

這就是本人要的效果,不廢話,具體做法如下

box = ax1.get_position()
ax1.set_position([box.x0, box.y0, box.width , box.height* 0.8])12

首先按上面的方式,如果你想將圖例放上面就box.height*0.8,放右邊就box.width*0.8其它方式一樣。同時配合下面來使用。

ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)1

主要是bbox_to_anchor的使用,自己可以修改參數試下,good luck for you.

閱讀全文

版權聲明:原創圓塌文章,未經博主

⑸ python plt.imshow 怎麼用

用法以既步驟:

1、給出一張圖片。

閱讀全文

與python如何控制圖片相關的資料

熱點內容
游泳剪紙圖片簡單 瀏覽:611
動漫的圖案簡筆畫圖片大全 瀏覽:10
建築風景動漫圖片 瀏覽:768
逃學威龍張敏穿白衣服的圖片 瀏覽:19
放衣櫃的衣服唯美圖片 瀏覽:513
男生雨中跑車圖片 瀏覽:536
美女退張開的圖片 瀏覽:195
嬰兒文字動畫圖片 瀏覽:956
簡單的生日菜圖片 瀏覽:604
85度c蛋糕圖片價格表 瀏覽:316
淺黃色發型圖片男生 瀏覽:394
表示感謝的圖片加文字 瀏覽:682
適合男生戴翡翠指環圖片 瀏覽:741
動漫相思樹圖片 瀏覽:97
魚缸隔離網圖片大全 瀏覽:205
圖片資源怎麼用 瀏覽:266
窗簾怎麼搭配圖片 瀏覽:973
手繪女孩霸氣圖片 瀏覽:570
角磨機碳刷怎麼換圖片 瀏覽:821
搭配衣服的襪子圖片 瀏覽:769