使用PIL模块在图片上面加文字

2016-09-06  本文已影响0人  刑素素

《互联网广告管理暂行办法》已经实施,有这么一条内容:第七条 互联网广告应当具有可识别性,显著标明“广告”,使消费者能够辨明其为广告。现在就需要将网站上以前的相关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)

左下角出现红色的广告两个字
上一篇 下一篇

猜你喜欢

热点阅读