【python绘图】badapple!! 灵梦python实现
本帖最后由 花落丿天使 于 2021-3-14 23:13 编辑首先放上图片:
代码实现:
import turtle as tt
from PIL import Image
import numpy as np
img=np.array(Image.open('D:/baRM.jpg').convert('L'))
rows,cols=img.shape
III=np.empty(,dtype=int)
for i in range(rows):
for j in range(cols):
if (img<=128):
img=0
else:
img=1
def zfx(a,rgb):
tt.penup()
tt.left(90)
tt.fd(a/2)
tt.left(90)
tt.pencolor(rgb,rgb,rgb)
tt.fillcolor(rgb,rgb,rgb)
tt.begin_fill()
tt.pendown()
tt.fd(a/2)
tt.left(90)
tt.fd(a)
tt.left(90)
tt.fd(a)
tt.left(90)
tt.fd(a)
tt.left(90)
tt.fd(a/2)
tt.left(90)
tt.end_fill()
tt.penup()
tt.fd(a/2)
tt.left(90)
tt.setup(900,900,0,0)
tt.speed(0)
tt.bgcolor("gray")
tt.Turtle().screen.delay(0)
for i in range(1,220,1):
for j in range(1,220,1):
tt.penup()
tt.goto(2*i-300,2*j-300)
tt.pendown()
if img==1:
zfx(2,1)
else:
zfx(2,0)
tt.done()
实现原理:
首先引入几个必要的库,PIL和nupmy用来读取像素的RGB值,turtle用来画图(很多人更熟悉的名字应该叫LOGO,就是那只小乌龟),随后定义了绘制正方形的函数zfx(a,rgb),当读取位置为黑色时用zfx(a,0)绘制黑色正方形,反之则绘制白色正方形,为了显示白色正方形的效果,将画布颜色设置成了灰色,随后逐个输出像素点地绘制正方形,然后截图时旋转90度即可(由于开始时乌龟脸朝右的缘故)。中间有一行是D:/baRM.jpg,用的时候记得改成你图片的存储位置,然后下面两个200记得改成你想要的图片大小(如果输出大小和图片不一样还需要乘个系数)
因为下载图片的大小是880*880,于是乎就缩小四倍改成220*220了,按照220*220画的图(也是出于速度的考虑)
LOGO,很有年代感呢
其實是類以Bitmap Threshold的功能吧 画画(×)
降低分辨率(√)
页:
[1]