Example #1
0
        /// <summary>
        /// 在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述.
        /// (多色, 差色查找类似于Ocr接口, 不再重述)
        /// 易语言用不了FindStrFast可以用此接口来代替
        ///
        /// 注: 此函数比FindStrExS要快很多,尤其是在字库很大时,或者模糊识别时,效果非常明显。
        /// 推荐使用此函数。
        ///
        /// 另外由于此函数是只识别待查找的字符,所以可能会有如下情况出现问题。
        ///
        /// 比如 字库中有"张和三" 一共3个字符数据,然后待识别区域里是"张和三",如果用FindStrExS查找
        /// "张三"肯定是找不到的,但是用FindStrFastExS却可以找到,因为"和"这个字符没有列入查找计划中
        /// 所以,在使用此函数时,也要特别注意这一点。
        /// </summary>
        /// <param name="dmsoft"></param>
        /// <param name="findStr"></param>
        /// <returns></returns>
        public static List <StrPoint> FindStrFastExS(this dmsoft dmsoft, FindStrFastExS findStr)
        {
            List <StrPoint> points = new List <StrPoint>();
            var             res    = dmsoft.FindStrFastExS(findStr.X1, findStr.Y1, findStr.X2, findStr.Y2, findStr.String, findStr.ColorFormat, findStr.Sim);

            if (string.IsNullOrWhiteSpace(res))
            {
                return(points);
            }
            else
            {
                string[] arr1 = res.Split('|');
                string[] arr2;
                foreach (var item in arr1)
                {
                    arr2 = item.Split(',');
                    points.Add(new StrPoint(arr2[0], int.Parse(arr2[1]), int.Parse(arr2[2])));
                }
                return(points);
            }
        }