再见Photoshop,我用Pillow制作公众号封面图
写公众号写久了,不知道什么样的封面图才能吸引你们,于是想着优化下公众号的封面图。
我的需求很简单, 不搞花里胡哨的,选一张合适的封面图,简单处理将其亮度调暗一点,然后在图片上加一句能概括文章主题的标题即可。类似昨天的封面图一样。
对于会PS的人来说可能就是一分钟的事情,可是我一没安装PS,二来PS已经完全生疏。所以对我来说最合适的工具是用代码来实现,也是分分钟的事。
Python中有个很出名的图片处理库 Pillow,功能非常强大,用起来很顺手。如果你要经常处理图片,特别是批量处理,可以尝试下这个库。如果你还不会python,赶紧学。
安装Pillow
pip install pillow
图片变暗
我们需要用到Pillow下面一个叫ImageEnhance的模块,主要是处理图像增强的, 这个模块下面的Brightness类用于调整图片的亮度背后复杂的逻辑pillow已经都给你封装好了,你只需要指定数值就可以调节。
ImageEnhance.Brightness(image)
factor = 0.3
im_output = enhancer.enhance(factor)
factor 是亮度因子,大于1会让图片更亮,小于1使图片变暗, 本质上其实就是调整图片的像素值
原始图是这样的
只需要4行代码就可以将图片变暗
from PIL import Image, ImageEnhance
# 加载图片
im = Image.open("cover.png")
# 构建enchance.Brightness对象
enhancer = ImageEnhance.Brightness(im)
factor = 0.3
# 调整亮度值
im_output = enhancer.enhance(factor)
# 保存图片
im_output.save('darkened-image.png')
效果图是这样的
添加文字
第二步在图片中添加文字,大概需要4个步骤
设置文字大小
指定文字字体
指定文字颜色
计算文字放置位置
将文字画到图片中间
注意有些字体不支持中文,字体的选择可以在路径 C:\Windows\Fonts 查找,macOS的路径 /System/Library/Fonts, 找到指定的字体后右键选择【属性】后即可获取该字体的完整名称。
# 字体大小
font_size = 56
# 文字内容
text = '摸鱼神器'
# 字体文件路径
font_path = 'C://Windows/Fonts/msyhbd.ttc'
# 设置字体
font = ImageFont.truetype(font_path, font_size)
# 文本的宽、高
text_width, text_height = font.getsize(text)
# 图片的宽、高
width, height = im.size
draw = ImageDraw.Draw(im_output)
draw.text(((width - text_width) / 2, (height - text_height) / 2), text, fill="rgb(255,255,255)", font=font)
im_output.save('darkened-image.png')
将前后两端代码连在一起就构成了完整代码,最后我们其实还可以给图片打上水印之类的功能,就是图片右下角那个文字。这部分留给读者自己实现。
评论