专栏名称: Python之禅
分享Python相关技术干货,偶尔扯扯其它的
目录
相关文章推荐
Python爱好者社区  ·  国企官网被挂上“码农的钱你也敢吞,还钱” ·  昨天  
Python中文社区  ·  揭秘 DeepSeek ... ·  昨天  
Python开发者  ·  DeepSeek 下棋靠忽悠赢了 ... ·  3 天前  
Python爱好者社区  ·  “给我滚出贵大!”郑强出任贵州大学校长,打算 ... ·  4 天前  
Python爱好者社区  ·  节后第一个私活,赚了3w ·  3 天前  
51好读  ›  专栏  ›  Python之禅

震惊!一天内竟然要完成设计 100 张海报

Python之禅  · 公众号  · Python  · 2020-01-08 09:22

正文

知乎昨天有个热搜话题: 如何评价飞越旅行创始人要求员工一天设计100张海报!

据说是某公司创始人要求设计师在一天内设计100张小年海报,并称是公司正常工作安排,没有不尊重员工工作。

有图有真相

看完这段聊天记录,非常愤怒,怪可怜这位设计师的。

要是他会写代码该多好,作为程序员,我决定帮他一把。

既然老板能提出“合理”的需求,那我们也可以设计100个“合理”的小年图,任老板挑选。

思路是这样的,考虑到过年要喜庆,就用中国红做为背景底色,然后通过渐变调色来生成100张图。

最终实现效果是这样的,确实是不同款式的小年图,因为颜色不一样嘛。


剩下的就是开始撸代码

第一步:先生成一张 5:4 大小的背景图

width, height = 500, 400
image = Image.new("RGBA", (width, height), color=f"rgb(100,39,37)")
draw = ImageDraw.Draw(image)
file_name = f"100.png"
image.save(file_name, 'png')

效果图:


然后再加点文字作为点缀,内容就写 “小年快乐”,注意文字要居中

content = "小年快乐"
w, h = draw.textsize(content, font=font)
draw.text(((width - w) / 2, (height - h) / 2), content, fill="rgb(245,207,142)", spacing=18, font=font)


第1张小年图大功告成

如何生成100张呢?如果直接用PS来操作,恐怕手会酸

还是用代码来实现来得快

我们只要修改一下背景色RGB的RED值就可以了

这是完整代码:

from PIL import Image, ImageDraw, ImageFont

content = '小年快乐'

# 图片尺寸
width, height = 553, 369
# 字体样式
font_type = 'C://Windows/Fonts/simsun.ttc'
# 字体大小
font = ImageFont.truetype(font_type, 50)

# 生成100张不同款式的小年海报
for i in range(100):
red = 100 + i
image = Image.new("RGBA", (width, height), color=f"rgb({red},39,37)")
draw = ImageDraw.Draw(image)
w, h = draw.textsize(content, font=font)
draw.text(((width - w) / 2, (height - h) / 2),
content,
fill="rgb(245,207,142)"






请到「今天看啥」查看全文