python:如何画枫叶?

2025-10-20 13:11:49

1、首先,我们保存上面的图片为“枫叶.jpg”,放到python的目录下。打开python编辑器(本篇使用的pycharm)

python:如何画枫叶?

2、导入所需的库函数:

from PIL import Image

import turtle as t

python:如何画枫叶?

3、接下来,通过PIL读取图片的信息,对接turtle画图库完成绘制过程。

读取图片的函数:

def leave(path):

img = Image.open(path)  # 读取图像

global size

size=img.size

pix = img.load()

list = [[] for i in range(size[1])]  # 构造空列表

for i in range(0, size[1]):  # 从第一行开始循环

k = 0

for j in range(0, size[0]-1):

# 如果当前像素与下一个像素值不同且两者有一为背景色,则记录坐标

if pix[j, i] != pix[j + 1, i] and (255, 255, 255) in [pix[j, i], pix[j + 1, i]]:

if k == 0:  # index值为0说明是像素条起始坐标

list[i].append([j + 1, ])

k += 1

else:  # index值为1说明记录的是像素条结束坐标

list[i][-1].append(j)

k = 0

return list

python:如何画枫叶?

4、绘制的函数:

def draw(path):

l=leave(path)

# 绘图窗口大小

t.screensize(canvwidth=size[0], canvheight=size[1],bg='white')

t.speed(1000)

for i in range(0, size[1]):

# 遍历每一行

t.pencolor('black')

for line in l[i]:

# 遍历每一个像素条

t.penup()

t.goto(line[0] - size[0] // 2, (size[1] - i) - size[1] // 2)

t.pendown()

t.goto(line[1] - size[0] // 2, (size[1] - i) - size[1] // 2)

t.mainloop()

python:如何画枫叶?

5、最后,调用函数,运行程序:

draw('枫叶.jpg')

python:如何画枫叶?

6、运行结果

turtle努力绘画中......

(画笔有一点粗反而让图片更好看了)

python:如何画枫叶?

python:如何画枫叶?

python:如何画枫叶?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢