使用PIL模塊在圖片上面加文字

  • 需求

《互聯網廣告管理暫行辦法》已經實施,有這么一條內容:第七條 互聯網廣告應當具有可識別性,顯著標明“廣告”,使消費者能夠辨明其為廣告。現在就需要將網站上以前的相關banner圖上面加“廣告”兩個字,對于圖片數量比較大的網站,讓設計師一張張去加文字肯定不現實,這就需要用到腳本批量處理了。

  • 目標

測試圖片存放在本地文件夾中,批量在文件夾下面的所有圖片上面加“廣告”兩個字。

  • 需要的模塊

用PIL模塊處理圖像,glob模塊正則匹配文件中的所有圖片。當前例子中,
** Image模塊**
打開原始圖像
image = Image.open(img)
保存處理好的圖片
image.save(img,'jpeg')
** ImageDraw模塊**
新建繪圖對象
draw = ImageDraw.Draw(image)
獲取圖像的寬和高
width, height = image.size
** ImageFont模塊**
選擇文字字體和大小
setFont = ImageFont.truetype('C:/windows/fonts/Dengl.ttf', 20)
設置文字顏色
fillColor = "#ff0000"
寫入文字
draw.text((40, height - 100), u'廣告', font=setFont, fill=fillColor)

  • 實現代碼

python

# -*- coding:utf-8 -*-

from PIL import Image, ImageDraw, ImageFont
import glob

def add_num(pattern):
    setFont = ImageFont.truetype('C:/windows/fonts/Dengl.ttf', 20)
    fillColor = "#ff0000"

    for img in glob.glob(pattern):
        image = Image.open(img)
        draw = ImageDraw.Draw(image)
        width, height = image.size
        draw.text((40, height - 100), u'廣告', font=setFont, fill=fillColor)
        image.save(img,'jpeg')

    return 0

if __name__ == '__main__':
    pattern = 'D:/img/katong/*.jpg'

    add_num(pattern)

  • 結果預覽

左下角出現紅色的廣告兩個字
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容