使用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)

  • 结果预览

左下角出现红色的广告两个字
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容