找色/比色

# 比色 ## image.cmpColor() 单点或者多点比色,找到所有符合标准的点,如果都符合返回true,否则是false @param image1 图片 @param points 字符串类似这样 6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标,默认填写0全屏查找 @param y 区域的Y起始坐标,默认填写0全屏查找 @param ex 终点X坐标,默认填写0全屏查找 @param ey 终点Y坐标,默认填写0全屏查找 @return 布尔型,true代表找到了 false代表未找到 ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points3 ="205|1130|0xff944b-0x101010,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points = image.cmpColor(aimage,points3, 0.9, 0, 0, 0, 0); logd("points "+points); } } main(); ``` ## image.cmpColorEx() 单点或者多点比色,找到所有符合标准的点,自动截图 如果都符合返回true,否则是false @param points 字符串类似这样 6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标,默认填写0全屏查找 @param y 区域的Y起始坐标,默认填写0全屏查找 @param ex 终点X坐标,默认填写0全屏查找 @param ey 终点Y坐标,默认填写0全屏查找 @return 布尔型,true代表找到了 false代表未找到 ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points3 ="205|1130|0xff944b-0x101010,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points = image.cmpColorEx(points3, 0.9, 0, 0, 0, 0); logd("points "+points); } main(); ``` ## image.cmpMultiColor() 多点或者多点数组比色,找到所有符合标准的点,依次查找 如果找到就返回当前points的索引值,如果返回-1,说明都没有找到 @param image1 图片 @param points 数组类似这样 ["6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696","6|1|0x969696"] @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标,默认填写0全屏查找 @param y 区域的Y起始坐标,默认填写0全屏查找 @param ex 终点X坐标,默认填写0全屏查找 @param ey 终点Y坐标,默认填写0全屏查找 @return 整型,如果找到就返回当前points的索引值,如果返回-1,说明都没有找到 ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points1 ="205|112230|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points2 ="205|113022|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points3 ="205|1130|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points = image.cmpMultiColor(aimage,[points1,points2,points3], 0.9, 0, 0, 0, 0); logd("points "+points); } } main(); ``` ## image.cmpMultiColorEx() 多点或者多点数组比色,找到所有符合标准的点,自动截屏,依次查找 如果找到就返回当前points的索引值,如果返回-1,说明都没有找到 @param points 数组类似这样 ["6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696","6|1|0x969696"] @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标,默认填写0全屏查找 @param y 区域的Y起始坐标,默认填写0全屏查找 @param ex 终点X坐标,默认填写0全屏查找 @param ey 终点Y坐标,默认填写0全屏查找 @return 整型,如果找到就返回当前points的索引值,如果返回-1,说明都没有找到 ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points1 ="205|112230|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points2 ="205|113022|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points3 ="205|1130|0xff944b,211|1158|0xff8e42,191|1175|0xfcfbf7"; var points = image.cmpMultiColorEx([points1,points2,points3], 0.9, 0, 0, 0, 0); logd("points "+points); } main(); ``` # 找色 ## image.findColor() 在图片中找到颜色和color完全相等的某个点,并返回该点的左边;如果没有找到,则返回null。 @param image 图片 @param color 要寻找的颜色 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标 @param y 区域的Y起始坐标 @param ex 终点X坐标 @param ey 终点Y坐标 @param limit 限制个数 @param orz 方向,分别从1-8 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points = image.findColor(aimage,"0xCDD7E9-0x101010", 0.9, 0, 0, 0, 0, 10,1); logd("points "+points); } } main(); ``` ## image.findColorJ() 在图片中找到颜色和color完全相等的点,参数从JSON中获取 如果没有找到,则返回null。 @param image 图片 @param jsonFileName res文件中取色工具生成的JSON文件,只要填写文件名称即可,后缀不用填写 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points = image.findColorJ(aimage,"金币"); logd("points "+points); } } main(); ``` ## image.findColorEx() 在当前屏幕中找到颜色和color完全相等的点,并返回该点的左边;如果没有找到,则返回null。 @param color 要寻找的颜色 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param x 区域的X起始坐标 @param y 区域的Y起始坐标 @param ex 终点X坐标 @param ey 终点Y坐标 @param limit 限制个数 @param orz 方向,分别从1-8 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points = image.findColorEx("0xCDD7E9-0x101010", 0.9, 0, 0, 0, 0, 10,1); logd("points "+points); } main(); ``` ## image.findColorExJ() 当前屏幕中找到颜色和color完全相等的点,参数从JSON中获取 如果没有找到,则返回null。 @param jsonFileName res文件中取色工具生成的JSON文件,只要填写文件名称即可,后缀不用填写 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points = image.findColorExJ("金币"); logd("points "+points); } main(); ``` ## image.findMultiColor() 多点找色,找到所有符合标准的点,类似于按键精灵的多点找色。 @param image 要找色的图片 @param firstColor 第一个点的颜色 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param points 字符串类似这样 6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696 @param x 区域的X起始坐标 @param y 区域的Y起始坐标 @param ex 终点X坐标 @param ey 终点Y坐标 @param limit 限制个数 @param orz 方向,分别从1-8 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points = image.findMultiColor(aimage,"0xDD7A5F-0x101010", "29|25|0xBB454B-0x101010,58|44|0xA6363A-0x101010", 0.9, 0, 0, 0, 0, 10,1); logd("points "+points); } } main(); ``` ## image.findMultiColorJ() 多点找色,找到所有符合标准的点,参数从JSON文件中读取,类似于按键精灵的多点找色 @param image 要找色的图片 @param jsonFileName res文件中取色工具生成的JSON文件,只要填写文件名称即可,后缀不用填写 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var points = image.findMultiColorJ(aimage,"金币"); logd("points "+points); } } main(); ``` ## image.findMultiColorEx() 多点找色,找到所有符合标准的点,类似于按键精灵的多点找色。 @param firstColor 第一个点的颜色 @param threshold 找色时颜色相似度取值为 0.0 ~ 1.0 @param points 字符串类似这样 6|1|0x969696-0x000010,1|12|0x969696,-4|0|0x969696 @param x 区域的X起始坐标 @param y 区域的Y起始坐标 @param ex 终点X坐标 @param ey 终点Y坐标 @param limit 限制个数 @param orz 方向,分别从1-8 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points = image.findMultiColorEx("0xDD7A5F-0x101010", "29|25|0xBB454B-0x101010,58|44|0xA6363A-0x101010", 0.9, 0, 0, 0, 0, 10,1); logd("points "+points); } main(); ``` ## image.findMultiColorExJ() 多点找色,找到所有符合标准的点,自动抓取当前屏幕的图片,参数从JSON文件中读取,类似于按键精灵的多点找色 @param jsonFileName res文件中取色工具生成的JSON文件,只要填写文件名称即可,后缀不用填写 @return 多个Point 坐标点数组或者null ```javascript function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var points = image.findMultiColorExJ("金币"); logd("points "+points); } main(); ``` ## image.pixelInImage() 返回图片image在点(x, y)处的像素的ARGB值。 该值的格式为0xAARRGGBB,是一个"32位整数" 坐标系以图片左上角为原点。以图片左侧边为y轴,上侧边为x轴。 @param image 图片 @param x 要获取的像素的横坐标。 @param y 要获取的像素的纵坐标。 @return 整型 ```javascript function main() { var imageX = image.captureFullScreen(); var color = image.pixelInImage(imageX,100,100); } main(); ``` ## image.getPixelBitmap() 取得Bitmap图片的某个点的颜色值 @param bitmap 图片对象 @param x x坐标点 @param y y坐标点 @return int 颜色值 ```javascript function main() { var bitmap = image.captureScreenBitmap("jpg",800,800,100,100,100); var color = image.getPixelBitmap(bitmap,100,100); } main(); ``` ## image.getPixelsBitmap() 取得Bitmap图片的某个区域点的颜色值,等同于 Bitmap.getPixels @param bitmap 图片对象 @param arraySize 要返回的区域数组的大小 @param offset 写入到pixels[]中的第一个像素索引值 @param stride pixels[]中的行间距个数值(必须大于等于位图宽度)。可以为负数 @param x  从位图中读取的第一个像素的x坐标值。 @param y 从位图中读取的第一个像素的y坐标值 @param width   从每一行中读取的像素宽度 @param height    读取的行数 @return int 颜色值数组 ```javascript function main() { var bitmap = image.captureScreenBitmap("jpg",800,800,100,100,100); var w = bitmap.getWidth(); var h =bitmap.getHeight(); var mPixels = image.getPixelsBitmap(bitmap,w*h, 0, w, 0, 0,w, h); } main(); ```