位图(bitmap)
代码我写一个文件里了,粘贴的时候可能会漏掉之前的函数,如果有函数未定义 找一下别的代码段。
autopy.bitmap.
capture_screen
(rect: Tuple[Tuple[float, float], Tuple[float, float]]) → autopy.bitmap.Bitmap
返回主显示给定部分的屏幕抓图,如果rect为,则返回整个显示None
。
异常(Exceptions:):
-
ValueError
如果rect超出范围,则抛出该异常。 -
IOError
如果图像解析失败,则抛出该异常。
import autopy
def save_bmp_foggy(img,path_str):
return img.save(path_str)
def cap_sc_foggy(rt=((40,40),(800,200))):
return autopy.bitmap.capture_screen(rt)
if __name__ == '__main__':
img=cap_sc_foggy()
save_bmp_foggy(img,'photo/test/test2.png')
结果:屏幕截图 并保存(保存的函数详细介绍在下面)
class autopy.bitmap.
Bitmap
类有14个方法,let's go。
1/14:save
(路径:str,格式:str = None )
以给定格式将图像保存到绝对路径。图像类型默认根据文件名确定,除非给出了格式。如果文件已经存在,将其覆盖。当前仅支持jpeg和png文件。
异常(Exceptions:):
-
IOError
如果无法保存文件,则抛出该错误。 -
ValueError
如果无法解析图像,则抛出该异常。
2/14:open
(path:str ) →位图
打开位于指定路径的图像。图像的格式由路径的文件扩展名确定。
import autopy
#打开
def open_bmp_foggy(path_str):
return autopy.bitmap.Bitmap.open(path_str)
#保存
def save_bmp_foggy(img,path_str):
img.save(path_str)
if __name__ == '__main__':
img=open_bmp_foggy('photo/test/test1.png')
save_bmp_foggy(img,'photo/test/test2.png')
结果:打开test1 保存至test2
3/14:copy_to_pasteboard
()
将图像复制到粘贴板。当前仅在macOS上受支持。#我用不了。
异常(Exceptions:):
-
IOError
如果无法复制图像,则抛出该异常。 -
ValueError
如果图像太大或太小,则抛出该图像。
4/14:point_in_bounds
(x:float,y:float ) → bool
如果给定点包含在中,则返回True。
5/14:rect_in_bounds
(rect:Tuple [Tuple [float,float],Tuple [float,float]] ) → bool
如果给定rect包含在中,则返回True
。
和autopy.screen.is_point_visible(x,y)应该类似。
6/14:
get_color
(x:float,y:float ) →Tuple [int,int,int] #应该是只有一个int。
返回描述给定点颜色的十六进制值。
异常(Exceptions:):
-
ValueError
如果该点超出范围,则抛出该异常。
和autopy.screen.get_color(x,y)类似
7/14:find_color
(color: Tuple[int, int, int], tolerance: float=None, rect: Tuple[Tuple[float, float], Tuple[float, float]]=None, start_point: Tuple[float, float]=None) → Tuple[float, float]
从图里找到指定颜色的坐标,否则返回None rect默认为整个图,start_point默认为原点,tolerance为0到1的浮点数,0为完全匹配,1为绝对匹配。
import autopy
def find_cl_foggy(img,color_f=(255,255,255),to=None):
return img.find_color(color_f,to)
if __name__ == '__main__':
img=cap_sc_foggy()
print(find_cl_foggy(img))
save_bmp_foggy(img,'photo/test/test2.png')
结果:(0.0, 3.0)
8/14:find_every_color
(color: Tuple[int, int, int], tolerance: float=None, rect: Tuple[Tuple[float, float], Tuple[float, float]]=None, start_point: Tuple[float, float]=None) → List[Tuple[float, float]]
找所有满足条件的点
import autopy
#指定颜色所有位置
def find_cel_foggy(img,color_f=(255,255,255),to=None):
return img.find_every_color(color_f,to)
if __name__ == '__main__':
img=cap_sc_foggy()
print(find_cel_foggy(img))
save_bmp_foggy(img,'photo/test/test2.png')
结果:[(0.0, 3.0), (0.0, 4.0), (0.0, 5.0), (0.0, 6.0), ...(799.0, 178.0), (799.0, 179.0)]]
9/14:count_of_color
(color: Tuple[int, int, int], tolerance: float=None, rect: Tuple[Tuple[float, float], Tuple[float, float]]=None, start_point: Tuple[float, float]=None) → int
颜色计数 和len(find_every_color(color, tolerance, rect, start_point))一样
好的 以上大部分都用不到 最后5个看下一篇。