python練習冊-第0000題

RJzz發表於2018-07-18

Description

將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數字,類似於微信未讀資訊數量那種提示效果。 類似於圖中效果.

 

6769895-dc17efd80b8e87ac.png

一隻小老鼠

Analysis

題目的目的應該是希望我們讀入一張圖片,然後在右上角使用Font模組貼一個數字.

Solution

首先,我們通過搜尋引擎瞭解到python處理影象常用的library是PIL.下載其中某一版本後解壓後可看到:

6769895-fa8feed1a639ccc9.png

PIL庫

 

其中Docs下有詳細的文件,需要用到什麼功能都可以去查一下便是,可以看到有一個selftest.py檔案,開啟有一些簡單的上手教程。在本題中,我們需要學習的是開啟一張圖片,使用畫筆在其上貼上一個數字。通過查閱文件可知,做到這個效果主要使用到了Image,ImageDraw,ImageFont。

程式碼

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# 開啟一張圖片
img = Image.open('./spider/0 (85).jpg')
 
# 建立一個畫筆
draw = ImageDraw.ImageDraw(img)
 
# 建立字型,第一個引數為字型檔案,第二個字型大小
ft = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 30)
 
# 將字型畫到圖片的右上角 ,
# 第一個引數是位置,第二個是內容,
# 第三個設定字型,第四個是字型的顏色
draw.text((img.width * 0.8, img.height * 0.2), u"4", font=ft, fill='red')
 
# 顯示圖片
img.show()
 

最終效果

6769895-5cb9469f0041cd10.png

完成效果

這道題主要考察了python中常用的影象處理庫PIL的執行,在處理實際問題時若遇到之前未使用過的功能,查閱文件即可

相關文章