Python練習(xí)冊(cè) | 第00題 合成未讀消息圖片

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

Python練習(xí)冊(cè),每天一個(gè)小程序:https://github.com/Yixiaohan/show-me-the-code

前提:

PIL:Python Imaging Library
由于PIL僅支持到Python 2.7授舟,加上年久失修,于是一群志愿者在PIL的基礎(chǔ)上創(chuàng)建了兼容的版本昭雌,名字叫Pillow渔扎,支持最新Python 3.x

聲明:
代碼copy自漢森x, 自己只是加了大量注釋. 侵刪.

from PIL import Image, ImageFont, ImageDraw

def white_to_transparent(img):
    """摳圖"""

    #convert()函數(shù)志鹃,用于不同模式圖像之間的轉(zhuǎn)換夭问。
    #PIL中有九種不同模式,分別為1曹铃,L缰趋,P,RGB陕见,RGBA秘血,CMYK,YCbCr评甜,I灰粮,F(xiàn)。
    #模式“1”為二值圖像忍坷,非黑即白粘舟。模式“L”為灰色圖像.模式“P”為8位彩色圖像.模式“RGBA”為32位彩色圖像.
    #模式“I”為32位整型灰色圖像.模式“F”為32位浮點(diǎn)灰色圖像.
    img = img.convert('RGBA') #返回一個(gè)轉(zhuǎn)換后的圖像副本
    datas = img.getdata()  #像素?cái)?shù)據(jù)隊(duì)列
    newData = []
    for item in datas:
        if item[0] == 255 and item[1] == 255:
            newData.append((255,255,255,0))  #把白色變?yōu)橥该魃?        else:
            newData.append(item)
    img.putdata(newData) #賦值給圖片新的像素?cái)?shù)據(jù)
    img.save("change.png","PNG")
    return img

if __name__ == "__main__":
    p1_name = "github_logo"  #the path of image.
    p2_name = "red_reminder"
    p1_image = Image.open(p1_name)  #make a Image object
    p2_image = Image.open(p2_name)
    p2_transparent=white_to_transparent(p2_image)
    p1_image.paste(p2_transparent,(0,0),p2_transparent)  #paste方法?

    #usr_font=ImageFont.truetype("usr/share/fonts/truetype\
    #                             /deepin/DeepinOpenSymbol.ttf",32)
    usr_font = ImageFont.truetype("./FZZCHJW.TTF",32)
            #If"can't open resource" it means, python can't find your font.
            #Use absolute path, rather than relative path.
    draw=ImageDraw.Draw(p1_image) #在p1_image上繪制文字,圖像
    draw.text((152,8),u'10',font=usr_font)
    p1_image.save("final.png","PNG")
final.png
red_reminder
github_logo

以及一個(gè)字體文件, 可以選用系統(tǒng)自帶的字體.

參考
廖雪峰pillow簡(jiǎn)介
Pillow官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末承匣,一起剝皮案震驚了整個(gè)濱河市蓖乘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌韧骗,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件零聚,死亡現(xiàn)場(chǎng)離奇詭異袍暴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)隶症,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門政模,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚂会,你說我怎么就攤上這事淋样。” “怎么了胁住?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵趁猴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我彪见,道長(zhǎng)儡司,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任余指,我火速辦了婚禮捕犬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己碉碉,他們只是感情好柴钻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垢粮,像睡著了一般贴届。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上足丢,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天粱腻,我揣著相機(jī)與錄音,去河邊找鬼斩跌。 笑死绍些,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耀鸦。 我是一名探鬼主播柬批,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼袖订!你這毒婦竟也來了氮帐?” 一聲冷哼從身側(cè)響起汤求,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤嘲更,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后东臀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體楞艾,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡参咙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硫眯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕴侧。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖两入,靈堂內(nèi)的尸體忽然破棺而出净宵,到底是詐尸還是另有隱情,我是刑警寧澤裹纳,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布择葡,位于F島的核電站,受9級(jí)特大地震影響痊夭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虹曙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一迫横、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矾踱,春花似錦、人聲如沸疏哗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)污尉。三九已至膀哲,卻和暖如春被碗,著一層夾襖步出監(jiān)牢的瞬間焚志,已是汗流浹背娩嚼。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滴肿,地道東北人岳悟。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像泼差,于是被迫代替她去往敵國(guó)和親贵少。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容