private static PicInfo GetPicInfo(string url)
        {
            var picInfo = new PicInfo();

            if (url.Count(c => c == '.') > 2)
            {
                return(null);
            }
            var arrs = url.Split('_');

            if (arrs.Length <= 1)
            {
                return(null);
            }
            picInfo.SourcePath = string.Join("_", arrs.Take(arrs.Length - 1));
            var sizeWithExtStr = arrs.LastOrDefault();

            if (string.IsNullOrWhiteSpace(sizeWithExtStr))
            {
                return(null);
            }
            var sizeWithExtArray = sizeWithExtStr.Split('.');

            if (sizeWithExtArray.Length <= 1)
            {
                return(null);
            }
            var sizeArray = sizeWithExtArray[0].Split('X');

            if (sizeArray.Length <= 1)
            {
                return(null);
            }
            int w, h;

            if (!int.TryParse(sizeArray[0], out w) || !int.TryParse(sizeArray[1], out h))
            {
                return(null);
            }
            picInfo.Width  = w;
            picInfo.Height = h;
            if (picInfo.Width <= 0 || picInfo.Height <= 0)
            {
                return(null);
            }
            return(picInfo);
        }
 internal bool IsCommonSize(PicInfo picInfo)
 {
     return(picInfo.Width == picInfo.Height && this.AllowSizes.Any(c => c.Width == picInfo.Width));
 }
 internal bool IsFixSize(PicInfo picInfo)
 {
     return(picInfo.Height == FixHeight &&
            this.AllowSizes.Any(c => c.Width == picInfo.Width && c.Height == FixHeight));
 }