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