type
Post
status
Published
date
Jan 21, 2023
slug
summary
批量生成再挑选,避开选择困难症
tags
python
pillow
category
探索新世界
icon
password

引子

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

开始

首先需要准备就是一个png格式的logo形状,这必须得是一个png格式的,因为必须要具备一个透明通道。我们在后续与底板进行重叠的时候,才不会覆盖底板。
notion image
如上图所示,接下来就是要准备背景了。
我第一想法就是一个渐变的背景,但是查了很多的资料,都没有找到用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没有相关支持,不知道还有没有什么比较好用的轮子可以直接使用。
notion image
Medle?不仅是音乐字谜小游戏「2023-1月」