按键精灵 把黑白简笔画打印出来

左侧图片是在QQ中的图片编辑涂鸦,右侧图片是黑白简笔图。

然后通过安卓按键,按照右侧图在QQ图片编辑中画出一样的图画,当然由于涂鸦的画笔比较粗,所以看起来左侧的线条会粗一下,不过整体的轮廓是一样的。

下面我说一下原理,一共分为两部分。

第一部分:扫码图片

(一)先将画面中的像素点转成0和1的二值化,黑色用0表示,白色用1表示。

(二)把转化好的二值化数据存入文本。

第二部分:打印图片

这个其实就像现实中的喷墨打印机一样,一行一行的打印。

把上一步中的二值化数据按行读取出来,当读取到0,就点一下画面,这样就在画面上点了一个点。

读取完一行,就在读取下一行,知道把所有的数据读完。

当然初始的时候需要设置一个起始位置,让脚本知道从哪里开始画。

注:考虑到QQ图片编辑涂鸦点一下是不能画一个点的,所以把点击改成了横向3个像素的滑动。

下面是我的代码,代码是基于雷电模拟器,设置:540*960 dpi 240

①扫码图片源码

Dim r,g,b,y,k,d,GetColor
KeepCapture
For j = 223 To 785
d=""
For i = 12 To 524
GetColor = GetPixelColor(i,j)
ColorToRGB(GetColor,r,g,b)
y=r+g+b 
If y<384 Then 
k =0
Else 
k=1
End If
d=d&k
Next
//    TracePrint d
file.writeline("/sdcard/pictures/2.txt",j-223+1,d)
Next

ReleaseCapture

②打印图片的源码:

Dim arr=file.readlines("/sdcard/pictures/2.txt")
Dim n=UBound(arr)
Dim k
Dim x=12,y=222
For j = 0 To n step 3
k = Len(arr(j))
For i = 1 To k step 3
dim m=StrGetAt(arr(j), i)
If m = "0" Then 
TouchDown x+ i , y + j, 1
TouchMove x + i + 3, y + j , 1
TouchUp 1
//      TracePrint i,j
End If
Next
Next

转载自微信公众号:3分钟学堂

本站内容来源于网络,转载请注明出处和链接!
本文链接地址: https://pumpkinit.com/1142.html
南瓜  [https://pumpkinit.com]  感谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注