引子

之前找人帮我画了Aurality的logo,分为logo的底板和形状。底板的背景我想进行自由的更换,于是利用pillow来进行批量设置,然后从里面来挑出喜欢的。

开始

首先需要准备就是一个png格式的logo形状,这必须得是一个png格式的,因为必须要具备一个透明通道。我们在后续与底板进行重叠的时候,才不会覆盖底板。

Untitled

如上图所示,接下来就是要准备背景了。

我第一想法就是一个渐变的背景,但是查了很多的资料,都没有找到用pillow生成渐变色的简便方法,我看到的都是比较麻烦。

这条路走不通的话,那我想直接找到渐变色的底板,我找到了一个这样的网站,声称是提供了100张渐变色的图案。但是我一下子找不到那个网址了,所以直接分享一下下载下来的文件。

同时也找到了知乎上一篇关于调色网站的推荐。

这一些好用的调渐变色网站,推荐给你!

alpha_composite()

pillow中有一个alpha_composite函数正好可以把两张尺寸相同的图片重叠在一起。

from creat_color import *
from PIL import Image,ImageDraw,ImageFont,ImageColor
i=0
for color in chinese_color_l:
    i+=1
    # 生成一个1024的底板
    bg=Image.new("RGBA",(1024,1024),color) 
    logo=Image.open('logo.png')
    new=Image.alpha_composite(bg,logo)
    new.save('logo_combine/%d.png'%i)

以上的代码是一个简单的demo。首先底板颜色是来自于一个叫做chinese_color_l的列表,并制作一张1024*1024 的正方形底板。接下来是直接读取logo的形状,即上面那一张png图。最后使用这个函数,传入两个Image 对象,最后保存即可。


如果说想要底板为渐变色,如以下的代码:

from creat_color import *
from PIL import Image,ImageDraw,ImageFont,ImageColor

for i in range(100)
    bg=Image.open('png_bg/%d.png'%i)
    bg=bg.convert('RGBA')
    logo=Image.open('logo_black.png')
    new=Image.alpha_composite(bg,logo)
    new.save('logo_combine/%d.png'%i)

以上的代码中,首先是通过open函数读取本地的背景图片,但是还需要多一步,转换成RGBA 的格式。因为只有两张图片的格式都带有透明通道才可以进行合并。

总结

以上,批量生成之后再去挑顺眼一点。

其实挺想自己能直接生成渐变色的,但是pillow没有相关支持,不知道还有没有什么比较好用的轮子可以直接使用。

截屏2023-01-21 22.54.19.png

最后修改:2023 年 01 月 22 日
如果觉得我的文章对你有用,请随意赞赏