再见Photoshop,我用Pillow制作公众号封面图

python之禅

共 1846字,需浏览 4分钟

 ·

2021-03-18 19:06

写公众号写久了,不知道什么样的封面图才能吸引你们,于是想着优化下公众号的封面图。


我的需求很简单, 不搞花里胡哨的,选一张合适的封面图,简单处理将其亮度调暗一点,然后在图片上加一句能概括文章主题的标题即可。类似昨天的封面图一样。


对于会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个步骤

  1. 设置文字大小

  2. 指定文字字体

  3. 指定文字颜色

  4. 计算文字放置位置

  5. 将文字画到图片中间

注意有些字体不支持中文,字体的选择可以在路径 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')



将前后两端代码连在一起就构成了完整代码,最后我们其实还可以给图片打上水印之类的功能,就是图片右下角那个文字。这部分留给读者自己实现。



浏览 32
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报