日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python每天一个小程序_Python 练习册,每天一个小程序----第0000题

發(fā)布時間:2024/4/19 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python每天一个小程序_Python 练习册,每天一个小程序----第0000题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目

第 0000 題: 將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數(shù)字,類似于微信未讀信息數(shù)量那種提示效果。 類似于圖中效果

Code:

1 from PIL importImage,ImageDraw,ImageFont2 #path = "F:\Python Learning\Python_Exercise"

3 #讀取圖片數(shù)據(jù)

4 iconPath = r"Image\WeChart.png"

5 #labelPath = r"Image\圓圈.png"

6 iconImage=Image.open(iconPath,'r')7 #labelImage = Image.open(labelPath,"r")

8

9 ## 標(biāo)簽上寫字

10 #user_font = ImageFont.truetype('simsun.ttc',80)

11 #draw = ImageDraw.Draw(labelImage)

12 #draw.text((int(labelImage.size[0]/4),int(labelImage.size[1]/7)),u'24',font=user_font)

13 #labelImage.save("final.png","PNG")

14

15 #組合Icon

16 icon = Image.new("RGBA",(iconImage.size[0]+105,iconImage.size[1]+105))17 #iconImage.paste(labelImage,(int(iconImage.size[0]-labelImage.size[0]/2-1),0))

18 #iconImage.save("final.png","PNG")

19 #右上角數(shù)字標(biāo)簽會導(dǎo)致圖片尺寸變大

20 icon.paste(iconImage,(0,54))21 draw =ImageDraw.Draw(icon)22 #直接在圖片上畫圓

23 draw.ellipse([(iconImage.size[0]-100,5),(iconImage.size[1]+100,205)],"red")24 user_font = ImageFont.truetype('simsun.ttc',100)25 #標(biāo)注數(shù)字

26 draw.text((iconImage.size[0]-50,50),u'24',"white",font=user_font)27 icon.save("final.png","PNG")

Result:

總結(jié):

Pillow API 學(xué)習(xí)

API 文檔路徑:http://pillow-cn.readthedocs.io/zh_CN/latest/reference/index.html

(1) PIL.Image.new(mode,size,color)

mode: 新圖片的模式,如RGB,灰度圖相等

size: 新圖象的尺寸,元組對象(a,b)

color: 圖像的填充對象

返回圖像對象

(2) Image.size

獲取圖像尺寸,返回的是元組對象

由于返回是元組對象,則訪問結(jié)果是Image.size[0]

(3) ImageDraw.Draw(im,mode=None)

創(chuàng)建可在圖片上進(jìn)行繪制Draw對象

(4) Image.paste(sourceImg,box=None,mode=None)

將一張圖片粘貼到另一張圖片上

Image對象指的是被粘貼的圖片

sourceImg: 粘貼的源圖片

box: 2元組則是粘貼圖片位置的左上角開始位置

4元組則是左上角,同時包括右下角,必須符合源圖片的尺寸內(nèi)

mode:圖片模式

(5) ImageFont.trueType(font=None,size=None,index=0,filename=None)

設(shè)置圖片上字體

filename: 設(shè)置字體文件,如若沒有則是找Window字體

size: 字體大小

(6) ImageDraw.Draw.eclipse(xy,fill=None,outline=0)

圖片上繪制橢圓

xy:兩種方式

[(x0,y0),(x1,y1)],[x0,y0,x1,y1]左上角,右上角坐標(biāo)

如果要畫圓形則是保證兩軸長度相等

fill: 橢圓內(nèi)部是否填充,填充色

outline:橢圓輪廓寬度

(7) ImageDraw.text(xy,text,fill=None,font=None)

xy: 字的右上角的位置

text:書寫的問題,注意編碼格式

fill:文本的顏色

font:引入字體

編碼經(jīng)驗的總結(jié)

(1) 如果不是矢量圖可能會造成疊加圖片未著色遮蓋,故最終選擇兩個圖片疊加,而是直接在圖片上繪制圓形

(2)關(guān)于圖片字體仍然還需進(jìn)一步的學(xué)習(xí),因為想引入微軟雅黑,結(jié)果沒成功,還有就是如何加粗?

(3) 如何讓文字自適應(yīng)在圖片中間,C++中有獲取字體的像素大小,還得再研究Pillow是否有這個函數(shù)?

拓展

(1) 如何抹去上面的數(shù)字標(biāo)簽,模擬微信已讀

(2) 如何更新上面的數(shù)字,模擬不斷接受新的消息,未讀

思路:

code改編為函數(shù),輸入?yún)?shù)為未讀消息數(shù)據(jù),獲取原始圖片的畫筆

事件響應(yīng)傳入相應(yīng)的參數(shù)

總結(jié)

以上是生活随笔為你收集整理的python每天一个小程序_Python 练习册,每天一个小程序----第0000题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。