public Mat GetAvatar(PCRAvatarLevel avatarLevel)
        {
            var path = GetAvatarPath(avatarLevel);
            var mat  = OpenCvExtension.ReadMatFromFile(path);

            return(mat);
        }
        public string GetAvatarPath(PCRAvatarLevel avatarLevel)
        {
            var avatarName = GetAvatarName(avatarLevel);
            var path       = pcrTools.ChooseFilePath("Img/unit", null, avatarName);

            return(path);
        }
        public static int GetRequiredStars(this PCRAvatarLevel avatarLevel)
        {
            switch (avatarLevel)
            {
            case PCRAvatarLevel.Level1: return(1);

            case PCRAvatarLevel.Level3: return(3);

            case PCRAvatarLevel.Level6: return(6);
            }
            return(0);
        }
        protected Mat GetUnitAvatarPartial(string unitID, PCRAvatarLevel avatarLevel, int templateWidth)
        {
            var key = $"{unitID}_{avatarLevel}_{templateWidth}";

            if (unitAvatarPartialDict.ContainsKey(key))
            {
                return(unitAvatarPartialDict[key]);
            }
            var unit          = PCRUnit.FromUnitID(unitID, avatarLevel.GetRequiredStars());
            var avatar        = unit.GetResizedAvatar(avatarLevel, templateWidth);
            var avatarPartial = avatar.GetChildMatByRectRate(unitAvatarPartialRectRate);

            unitAvatarPartialDict[key] = avatarPartial;
            return(avatarPartial);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="avatarLevel"></param>
        /// <param name="templateWidth">1280*640像素下的图标大小</param>
        /// <returns></returns>
        public Mat GetResizedAvatar(PCRAvatarLevel avatarLevel, int templateWidth)
        {
            var avatarResSize = configMgr.UnitAvatarResourceSize;

            var viewportSize         = pcrTools.GetViewportSize();
            var viewportTemplateSize = configMgr.MumuViewportTemplateSize;

            var viewportScale = 1.0 * viewportSize.Width / viewportTemplateSize.Width;
            var avatarScale   = 1.0 * templateWidth / avatarResSize.Width * viewportScale;

            var mat     = GetAvatar(avatarLevel);
            var resized = mat.Resize(new OpenCvSize(mat.Width * avatarScale, mat.Height * avatarScale));

            return(resized);
        }
        public Mat GetResizedAvatar(PCRAvatarLevel avatarLevel)
        {
            var avatarTemplateSize = configMgr.UnitAvatarTemplateSize;

            return(GetResizedAvatar(avatarLevel, avatarTemplateSize.Width));
        }
 public string GetAvatarName(PCRAvatarLevel avatarLevel)
 {
     return(GetAvatarName(ID, avatarLevel));
 }
 public static string GetAvatarName(string ID, PCRAvatarLevel avatarLevel)
 {
     return($"icon_unit_{ID}{avatarLevel.GetRequiredStars()}1.png");
 }