国庆节来了,给头像披面国旗吧
【摘要】 国庆节来了,公众号看到有人用python给头像披上了一面国旗。事实上只需要简单的应用一下PIL,就可以做到了,让我们也来做个简单的尝试。先到网上下一面国旗和一个头像。然后把它们用python打开。from PIL import Imageflag = Image.open('flag.png')figure = Image.open('figure.jpg')接下来,来看一下他们的尺寸。fl...
国庆节来了,公众号看到有人用python给头像披上了一面国旗。事实上只需要简单的应用一下PIL,就可以做到了,让我们也来做个简单的尝试。
先到网上下一面国旗和一个头像。
然后把它们用python打开。
from PIL import Image
flag = Image.open('flag.png')
figure = Image.open('figure.jpg')
接下来,来看一下他们的尺寸。
flag.size, figure.size
可以看到头像的尺寸比国旗要大很多,所以我们把国旗的尺寸放大一些,直到受到头像宽度的限制为止。
w, h = 1440, int(720*1440/1080)
flag = flag.resize((w, h))
然后按这个尺寸从头像中截取精华部分,去掉头像图上下不是很重要的部分。
x, y = 0, 1000
figure.crop((x, y, x+w, y+h))
figure = figure.crop((x, y, x+w, y+h))
对国旗的颜色进行调整。我们只是简单地调整RGB中的红色部分,将中间的红色调整为无色,离中间越远,红色越明显,最边上为纯正的红色。
for i in range(w):
for j in range(h):
flag.putpixel((i, j),
flag.getpixel((i, j))[:-1] + (int(abs(i - w / 2) / w * 2 * 255), ))
改变颜色后的国际就不贴出来了,也许不适合张贴出来。
然后把这面改变颜色的国旗披到头像上就可以了。
figure.paste(flag, (0, 0), flag)
figure
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)