Example #1
0
 public static System.Drawing.Image CreateThumbnail(this System.Drawing.Image original, int percentage)
 {
     if (percentage < 1)
     {
         throw new ArgumentNullException("percentage", "缩放比例不能小于1%");
     }
     return(original.CreateThumbnail(((int)((original.Width * 0.01f) * percentage)), ((int)((original.Height * 0.01f) * percentage))));
 }
Example #2
0
        public static System.Drawing.Image CreateThumbnail(this System.Drawing.Image original, string widthCondition, string heightCondition)
        {
            int    width  = 0;
            int    num2   = 0;
            string str    = "";
            int    height = 0;
            int    num4   = 0;
            string str2   = "";

            if (widthCondition.StartsWith("="))
            {
                str = "=";
                if (widthCondition.EndsWith("%"))
                {
                    num2 = (int)((int.Parse(widthCondition.Substring(1).TrimEnd(new char[] { '%' })) * original.Width) * 0.01);
                }
                else
                {
                    num2 = int.Parse(widthCondition.Substring(1));
                }
            }
            else
            {
                str = "<=";
                if (widthCondition.EndsWith("%"))
                {
                    num2 = (int)((int.Parse(widthCondition.Substring(2).TrimEnd(new char[] { '%' })) * original.Width) * 0.01);
                }
                else
                {
                    num2 = int.Parse(widthCondition.Substring(2));
                }
            }
            if (heightCondition.StartsWith("="))
            {
                str2 = "=";
                if (heightCondition.EndsWith("%"))
                {
                    num4 = (int)((int.Parse(heightCondition.Substring(1).TrimEnd(new char[] { '%' })) * original.Height) * 0.01);
                }
                else
                {
                    num4 = int.Parse(heightCondition.Substring(1));
                }
            }
            else
            {
                str2 = "<=";
                if (heightCondition.EndsWith("%"))
                {
                    num4 = (int)((int.Parse(heightCondition.Substring(2).TrimEnd(new char[] { '%' })) * original.Height) * 0.01);
                }
                else
                {
                    num4 = int.Parse(heightCondition.Substring(2));
                }
            }
            float num5 = ((float)num4) / ((float)original.Height);
            float num6 = ((float)num2) / ((float)original.Width);

            if ((str == "=") && (str2 == "="))
            {
                width  = num2;
                height = num4;
            }
            else if (str == "=")
            {
                int num7 = (int)(original.Height * num6);
                width  = num2;
                height = (num7 <= num4) ? num7 : num4;
            }
            else if (str2 == "=")
            {
                int num8 = (int)(original.Width * num5);
                width  = (num8 <= num2) ? num8 : num2;
                height = num4;
            }
            else
            {
                if ((original.Width <= num2) && (original.Height <= num4))
                {
                    return(original);
                }
                float num9 = (num6 >= num5) ? num5 : num6;
                width  = (int)(original.Width * num9);
                height = (int)(original.Height * num9);
            }
            return(original.CreateThumbnail(width, height));
        }