-
需求
《互聯網廣告管理暫行辦法》已經實施,有這么一條內容:第七條 互聯網廣告應當具有可識別性,顯著標明“廣告”,使消費者能夠辨明其為廣告。現在就需要將網站上以前的相關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)
-
結果預覽
左下角出現紅色的廣告兩個字