手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

python:如何画枫叶

时间:2024-10-11 19:57:32

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

python:如何画枫叶

2、导入所需的库函数:from PIL import Imageimport turtle as t

python:如何画枫叶

3、接下来,通过PIL读取图片的信息,对接turtle画图库完成绘制过程。读取图片的函数:def leave(path):img = Imag髫潋啜缅e.open(path) # 读取图像global sizesize=img.sizepix = img.load()list = [[] for i in range(size[1])] # 构造空列表for i in range(0, size[1]): # 从第一行开始循环k = 0for 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 += 1else: # index值为1说明记录的是像素条结束坐标list[i][-1].append(j)k = 0return 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:如何画枫叶
© 手抄报圈