如果允许的话可以同时导入cv2模块和turtle模块,这样的话就可以实现在turtle画布上实现绘制图片
可以用任何图片读取软件读取图片,将图片转为点的矩阵,然后一个点一个点的绘制
import turtle as t
import cv2
img = cv2.imread('logo.png')
shape = img.shape
t.colormode(255)
t.tracer(2000)
t.penup()
t.goto(-shape[1]/2,shape[0]/2)
for i in range(shape[0]):
t.pendown()
for j in range(shape[1]):
[b,g,r] = img[i][j]
t.color((r,g,b))
t.fd(1)
t.penup()
t.goto(-shape[1]/2,shape[0]/2-i)
t.update()
t.done()
你先参照python的turtle库画一个简单swun校徽把能做的做了
https://blog.csdn.net/qq_42102190/article/details/99075709
不能做的把图片转换成Python Turtle绘图的py文件,然后把不会部分相关代码复制出来即可
from PIL import Image
f = open('test.py', 'w')
im = Image.open("1.jpg")
x, y = im.size
print(x, y)
f.write("import turtle\n")
f.write("canvasX = {}\n".format(x))
f.write("canvasY = {}\n".format(y))
f.write(
'''
def D(x, y):
return x - canvasX // 2, - y + canvasY // 2
turtle.screensize(canvasX,canvasY, "white")
turtle.penup()
turtle.goto(D(0,0))
turtle.pendown()
turtle.pensize(1)
turtle.speed(0)
turtle.colormode(255)
turtle.delay(0)
turtle.tracer({},0)
turtle.hideturtle()
'''.format(x))
for y in range(im.size[1]):
f.write("turtle.penup()\n")
f.write("turtle.goto(D(0,{}))\n".format(y))
f.write("turtle.pendown()\n")
for x in range(im.size[0]):
pix = im.getpixel((x, y))
f.write("turtle.pencolor" + str(pix) + "\n")
f.write("turtle.forward(1)\n")
f.write("turtle.done()\n")