python中如何让turtle在制图中间写字_Python3 Turtle(线条仅在画布中间渲染)

本文介绍了一个Python脚本,该脚本使用turtle模块和PIL库来重现图像。脚本遍历目录中的图像,读取每个像素的RGB值,并用turtle在画布中间按照像素颜色和位置绘制。遇到的问题是X轴像素只在Y轴的特定位置正确渲染,导致图像显示不完整。
摘要由CSDN通过智能技术生成

首先,我在滥用海龟模块。我有一个小脚本,循环遍历目录中的所有图像。然后使用PIL读取它“扫描”的图像的每个像素的RGB值。它将海龟更改为相对于该像素的颜色,然后将海龟移动到相对于图像的位置(在画布中)。实际上,我是在用海龟来重现图像。在

稍后我会有更多的想法,但是我一直遇到这样一个问题:所有X像素将在当前Y轴上渲染,直到下一个Y增量;然后前一行只正确地渲染画布的一半,后半部分是连续的一个像素颜色。在

3770f8ef4765f46128497f7915d2e8ed.png

依赖关系PIL/枕头==4.0.0

拉票

注意

只要图像托盘是长的。如果图像有一个索引的颜色托盘,脚本将崩溃。在

脚本# Imports

import os

import time

from PIL import Image

import turtle

import canvasvg

wn = turtle.Screen()

wn.tracer(0)

pen = turtle.Turtle()

pen.shape("square")

pen.speed(0)

# Load Image

for image in os.listdir('image'):

# Create Empty Level

pixel = []

# Open and process Image with PIL

im = Image.open("image/" + image)

width = im.size[0]

height = im.size[1]

wn.setup(width+50, height+50)

pix = im.load()

# Loop through the Y of the image

for y in range(height):

# Loop through the X of the image

pen.pendown()

for x in range(width):

# Get color of pixel, set color of turtle

color = pix[x,y]

pen.color((color[0]/255, color[1]/255, color[2]/255))

# Move turtle

pen.goto(-(width/2) + x, (height/2) - y)

# Debug Info

print(x,y, pix[x,y])

# Lift pen so there is not a streak across the window

pen.penup()

# Update the window

wn.update()

# Add delay so computer doesn't crap pants

time.sleep(1)

# Save canvas to SVG file

canvasvg.saveall(image + ".svg",wn._canvas)

# Reset window for next image.

wn.reset()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值