/// <summary> /// 查找所有指定的形状的坐标. 形状的描述同按键的抓抓. 具体可以参考按键的抓抓. /// 和按键的语法不同,需要用大漠综合工具的颜色转换 /// </summary> /// <param name="dmsoft"></param> /// <param name="findPic"></param> /// <returns>(由于内存限制,返回的坐标数量最多为1800个左右)</returns> public static List <Point> FindShapeEx(this dmsoft dmsoft, FindShapeEx findPic) { List <Point> points = new List <Point>(); var res = dmsoft.FindShapeEx(findPic.X1, findPic.Y1, findPic.X2, findPic.Y2, findPic.OffsetColor, findPic.Sim, findPic.Dir); int x, y; int index = 0; int count = dmsoft.GetResultCount(res); while (index < count) { dmsoft.GetResultPos(res, index++, out x, out y); points.Add(new Point(x, y)); } return(points); }
/// <summary> /// 查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理. /// 这个函数可以查找多个图片,并且返回所有找到的图像的坐标.此函数同FindPicEx.只是返回值不同. /// </summary> /// <param name="dmsoft"></param> /// <param name="findColor"></param> /// <returns>(由于内存限制,返回的图片数量最多为1500个左右)</returns> public static List <Point> FindPicExS(this dmsoft dmsoft, FindPicExS findColor) { List <Point> points = new List <Point>(); string s = dmsoft.FindPicExS(findColor.X1, findColor.Y1, findColor.X2, findColor.Y2, findColor.PicName, findColor.DeltaColor, findColor.Sim, findColor.Dir); int x, y; int index = 0; int count = dmsoft.GetResultCount(s); while (index < count) { dmsoft.GetResultPos(s, index++, out x, out y); points.Add(new Point(x, y)); } return(points); }
public static List <Point> FindPicMemE(this dmsoft dmsoft, FindPicMemE findPic) { List <Point> points = new List <Point>(); var s = dmsoft.FindPicMemE(findPic.X1, findPic.Y1, findPic.X2, findPic.Y2, findPic.PicInfo, findPic.DeltaColor, findPic.Sim, findPic.Dir); int x, y; int index = 0; int count = dmsoft.GetResultCount(s); while (index < count) { dmsoft.GetResultPos(s, index++, out x, out y); points.Add(new Point(x, y)); } return(points); }
/// <summary> /// 查找指定区域内的所有颜色块,颜色格式"RRGGBB-DRDGDB",注意,和按键的颜色格式相反 /// </summary> /// <param name="dmsoft"></param> /// <param name="findColor"></param> /// <returns>查找指定区域内的所有颜色块,颜色格式"RRGGBB-DRDGDB",注意,和按键的颜色格式相反</returns> public static List <Point> FindColorBlockEx(this dmsoft dmsoft, FindColorBlock findColor) { int x, y; List <Point> points = new List <Point>(); string s = dmsoft.FindColorBlockEx(findColor.X1, findColor.Y1, findColor.X2, findColor.Y2, findColor.Color, findColor.Sim, findColor.Count, findColor.Width, findColor.Height); var index = 0; var count = dmsoft.GetResultCount(s); while (index < count) { dmsoft.GetResultPos(s, index++, out x, out y); points.Add(new Point(x, y)); } return(points); }
public static Point FindStrE(this dmsoft dmsoft, FindStrE findStr) { int x, y; var pos = dmsoft.FindStrE(findStr.X1, findStr.Y1, findStr.X2, findStr.Y2, findStr.String, findStr.ColorFormat, findStr.Sim); if (string.IsNullOrWhiteSpace(pos)) { return(new Point()); } else { var res = dmsoft.GetResultPos(pos, 0, out x, out y); if (res == 1) { return(new Point(x, y)); } else { return(new Point()); } } }