因为略懂Photoshop,所以接到一个任务:将公司所有的产品图片整理出来,并在图片中写明产品的品牌和型号,然后分类放在iPad中方便给客户展示。
WTF,几千张图片,用PS一个个打开添加文字,这会把人弄疯的,作为一个懒人,做这种大量机械性的重复工作显然不是我的追求,于是就想到用程序自动实现。
一、使用Python和PIL图片处理库
思路:所有图片的文件名都是以品牌+型号的方式命名,所以先用python读取当前目录下所有文件,得到文件名后我们就可以得到当前图片的品牌型号字符串,然后根据图片像素大小自动判断合适的字体大小,再利用PIL库给原图片加上文字水印(品牌型号),然后将处理后的图片保存在当前目录下的new子文件夹。
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import os
import sys
import PIL
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# 设置文字水印
def set_water_text(imagefile, text):
img = Image.open(imagefile)
(img_x, img_y) = img.size
# 文字字体像素高度为图片高度的 1/20
ttfont = ImageFont.truetype('/usr/share/fonts/noto/NotoSansCJK-Regular.ttc', int(img_y/2