def is_pixel_equal(self,img1,img2,x,y):
‘‘‘
判断两张图片的同一像素点的RGB值是否相等
‘‘‘
pixel1,pixel2= img1.load()[x,y],img2.load()[x,y]
#print(pixel1,pixel2)
#设定一个比较基准
sub_index = 60
#比较
if abs(pixel1[0]-pixel2[0])< sub_index and abs(pixel1[1]-pixel2[1])< sub_index and abs(pixel1[2]-pixel2[2])< sub_index:
return True
else:
return False
def get_gap_offset(self,img1,img2):
‘‘‘
获取缺口的偏移量
‘‘‘
x = int(img1.size[0]/4.2)
for i in range(x,img1.size[0]):
for j in range(img1.size[1]):
#两张图片对比,(i,j)像素点的RGB差距,过大则该x为偏移值
if not self.is_pixel_equal(img1,img2,i,j):
x = i
return x
return x
8.使用偏移值计算移动操作(轨迹)
def get_track(self,offset):
‘‘‘
模拟人为拖动验证码滑块
‘‘‘
track = []
#滑块起始x坐标
current = 5
#变速临界值
border_point = int(offset*3/5)
#设置时间间隔
t = 0.2
#设置初速度
offset +=4
v = 0
#循环直到滑动到偏移值时退出
while current < offset:
#根据是否临界点改变运动状态
if current < border_point:
#加速度
a = 1
else:
a =-0.5
v0 = v
v = v0 + a*t
move = v0*t +0.5*a*t*t
current += move
track.append(round(move))
return track