Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        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());
                }
            }
        }