现学现卖,用python小乌龟画个红包封面

528 阅读3分钟

PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛”,

这两天领取红包封面很火爆啊,很遗憾我没有抢到掘金的红包封面,放假在家没事,那就自己画一个,查了下python画图工具,有TK, Pygame, turtle. turtle最简单,就从最简单的入手。 根据官方文档turtle快速了解了一下就开始做图了,让我们开始画吧。

第一步,添加背景

过年要喜庆,当然要红色的背景,如果使用该函数设置背景色太单调,注意这个背景色color参数可以是字符串,例如red, blue,green等,也可以是16进制字符串。添加背景色的函数如下

turtle.bgcolor(bg_color)

turtle小乌龟还可以添加背景图片,添加这个背景图片就卡了壳,仔细看了文档,才知道只能添加gif和png类型的,我从网上通过f12查看网页源码,下载下来的gif文件却不能使用总是报错,这点不知道为啥,有可能不是真正的gif文件,我也懒得去找工具进行转换文件格式,截图保存的图片类型都是png,这个非常方便。示例如下添加背景图片:

turtle.bgpic("img_1.png")

第二步,画图

红包是个长方形,颜色是红色,我们要先画一个长方形,填充为红色,直接用red,这个颜色太红,我就采用了这个桔红色

image.png

长方形的代码:

# 画第一个长方型
turtle.color("#F35336")
turtle.begin_fill()
turtle.fd(200)
turtle.left(90)
turtle.fd(300)
turtle.left(90)
turtle.fd(200)
turtle.left(90)
turtle.fd(300)
turtle.end_fill()

这里涉及到的知识点:

  1. turtle.fd()表示画笔向前走多少步,这个单位是像素
  2. turtle.left()表示画笔转向的角度,90表示90度,就是个直角
  3. turtle.begin_fill()表示颜色开始填充
  4. turtle.end_fill()表示颜色结束填充

这样长方形就画好了,这就是红包的轮廓。接着我们就画一个红包的开,我们看到的大部分红包开是个繁体字,然后在一个圆形里,那我们就需要在这个长方形里画一个圆形,然后在圆形里填充一个繁体字开

圆形代码:

# 画圆形
turtle.color("#FFEBCD")
turtle.penup()
turtle.back(100)
turtle.left(90)
turtle.fd(100)
turtle.pendown()
turtle.begin_fill()
turtle.circle(30)
turtle.end_fill()

这里涉及到的知识点

  1. turtle.penup() 表示画笔抬起,就是说你画完上一个图形,想在另一个地方画其他图形,这时你就需要把笔抬起来
  2. turtle.pendown() 表示画笔落下,准备开始画了,前提新画的地方已经选好了。
  3. turtle.circle(),表示画一个圆,参数是半径

写入文字的代码

# 填充字
turtle.penup()
turtle.left(90)
turtle.fd(10)
turtle.pendown()
turtle.pencolor("#CD5C5C")
turtle.write("開", move=False, font=('gungsuh', 30,), align="center")

这里涉及到的知识点

  1. turtle.pencolor() 设置画笔的颜色

  2. turtle.write() 写入文字,参考官方文档解释- 参数

    • arg -- 要书写到 TurtleScreen 的对象
    • move -- True/False
    • align -- 字符串 "left", "center" 或 "right"
    • font -- 一个三元组 (fontname, fontsize, fonttype)

基于 align ("left", "center" 或 "right") 并使用给定的字体将文本 —— arg 的字符串表示形式 —— 写到当前海龟位置。 如果 move 为真值,画笔会移至文本的右下角。 默认情况下 move 为 False

至此主要代码就全部结束了

运行结果

是不是很简单,想要更好看的封面,等我继续修炼升级

image.png