设备:雷电模拟 540*960
说一下基本原理:
(1)先把字母按照字体本身的“空间占有率”安排序号
WMKG98BHEFNARPQDO0653SCVXYZTLJVdbghfk742Iqpmweaxtszounycvrjli;:.,
(2)获取参考图片的颜色亮度0-765
(3)每一个亮度对应一个字母符号,由于字母和符号数量不够700多,所以一个字母符号占多个颜色亮度。
(4)遍历整个图片的颜色亮度,并匹配到对应的字母符号
(5)按照行写入到文本中
注意:由于文本直接显示的字数有限,所以在遍历图片的时候,数量不宜过多,可以间隔几个取一个点。同时注意长宽比例。
代码如下:
- Dim zm="WMKG98BHEFNARPQDO0653SCVXYZTLJVdbghfk742Iqpmweaxtszounycvrjli;:.,"
- Dim k,d,m
- file.Write("/sdcard/pictures/0.txt")
- KeepCapture
- For j = 840 To 153 step -8
- k=""
- For i = 0 To 540 step 5
- dim GetColor = GetPixelColor(i, j)
- dim ys = ColorDiff(GetColor, "000000")
- If ys > 700 Then
- d = " "
- k=k&d
- Else
- m = Int(ys mod 11)
- d=utf8.StrGetAt(zm,m+1)
- k=k&d
- End If
- Next
- file.WriteLine("/sdcard/pictures/0.txt",1,k)
- Next
- ReleaseCapture
复制代码