前言
前段时间在一个朋友那么得到的灵感,想到可以用音乐播放页面作为一张海报图片。其实接下来要讲的和海报还是有差距的,而具体实现也只是简单的图片粘贴,但是在效果上还是不错的。效果图如下,希望大家喜欢:
左边是原图,右边是需要添加到中间的图,也是图的主角。其实如果直接用ps实现上面的图是非常简单的,反倒是用代码实现有点曲折,不过实现过程还是非常有趣的,希望这篇博客可以可以让你学到知识。
用Pillow创建圆形图
在上面的图片中,中间是一个圆形图片,而Pillow本身是没有提供生成圆形图片的方法(也可能是我没找到),所以就需要自己实现。在实现之前,我们先安装Pillow模块:
pip install pillow
要创建圆形图,我们先根据原图的大小,创建一个RGBA模式的透明图:
# 该方法传入三个参数,第一个为模式,第二个为大小的元组,第三个为颜色
im = Image.new("RGBA", (300, 300), (255, 255, 255, 0))
上述代码是创建了一个完全透明的300*300的图片,我们在该图片上绘制一个最大的圆:
# 获取绘制者
drawer = ImageDraw.Draw(im)
# 绘制一个黄色的圆,ellipse方法传入三个参数,第一个为包含该圆的最小正方形的区域,第二个为颜色,第三个为边宽
drawer.ellipse((0, 0, 300, 300), fill=(255, 255, 0), width=0)
生成图片如下:
我们准备一张300*300的正方形图片,然后遍历图片的每个像素ÿ