public static float GetPercentage(ResizeStrategyParameter parameter)
        {
            ResizeContext context;
            switch (parameter.Type)
            {
                case 111:
                    context = new ResizeContext(new ProcessResizeStrategy());
                    break;
                case 142:
                    context = new ResizeContext(new SubProcessResizeStrategy());
                    break;
                case 79:
                //system context
                case 81:
                    context = new ResizeContext(new SystemArchitectureResizeStrategy());
                    break;
                //case 81:
                //    context = new ResizeContext(new SystemContextResizeStrategy());
                //    break;
                default:
                    context = new ResizeContext(new GenericResizeStrategy());
                    break;
            }

            return context.GetPercentage(parameter);
        }
Пример #2
0
        public static float GetPercentage(ResizeStrategyParameter parameter)
        {
            ResizeContext context;

            switch (parameter.Type)
            {
            case 111:
                context = new ResizeContext(new ProcessResizeStrategy());
                break;

            case 142:
                context = new ResizeContext(new SubProcessResizeStrategy());
                break;

            case 79:
            //system context
            case 81:
                context = new ResizeContext(new SystemArchitectureResizeStrategy());
                break;

            //case 81:
            //    context = new ResizeContext(new SystemContextResizeStrategy());
            //    break;
            default:
                context = new ResizeContext(new GenericResizeStrategy());
                break;
            }

            return(context.GetPercentage(parameter));
        }
        public override float GetPercentage(ResizeStrategyParameter parameter)
        {
            float percent = 0;

            if (parameter.Width > 30000)
            {
                percent = 9;
            }
            else if (parameter.Width > 25000 && parameter.Width < 30000)
            {
                percent = 7;
            }
            else if (parameter.Width > 20000 && parameter.Width < 25000)
            {
                percent = 5;
            }
            else if (parameter.Width > 15000 && parameter.Width < 20000)
            {
                percent = 5;
            }
            else if (parameter.Width > 10000 && parameter.Width < 15000)
            {
                percent = 5;
            }
            else if (parameter.Width > 5000 && parameter.Width < 10000)
            {
                percent = 15;
            }
            else if (parameter.Width > 3000 && parameter.Width < 5000)
            {
                percent = 95;
            }
            else
            {
                percent = 100;
            }

            if (parameter.IsReport)
            {
                percent += 7;
            }

            return(percent);
        }
        public override float GetPercentage(ResizeStrategyParameter parameter)
        {
            float percent = 0;
            if (parameter.Width > 30000)
            {
                percent = 9;
            }
            else if(parameter.Width > 25000 && parameter.Width < 30000)
            {
                percent = 7;
            }
            else if (parameter.Width > 20000 && parameter.Width < 25000)
            {
                percent = 5;
            }
            else if (parameter.Width > 15000 && parameter.Width < 20000)
            {
                percent = 5;
            }
            else if (parameter.Width > 10000 && parameter.Width < 15000)
            {
                percent = 5;
            }
            else if (parameter.Width > 5000 && parameter.Width < 10000)
            {
                percent = 15;
            }
            else if (parameter.Width > 3000 && parameter.Width < 5000)
            {
                percent = 95;
            }
            else
            {
                percent = 100;
            }

            if (parameter.IsReport)
            {
                percent += 7;
            }

            return percent;
        }
 public float GetPercentage(ResizeStrategyParameter parameter)
 {
     return this.strategy.GetPercentage(parameter);
 }
Пример #6
0
 public float GetPercentage(ResizeStrategyParameter parameter)
 {
     return(this.strategy.GetPercentage(parameter));
 }
        public override float GetPercentage(ResizeStrategyParameter parameter)
        {
            float percent = 0;
            switch (parameter.PoolCount)
            {
                case 1:
                    percent = (float)4;
                    break;
                case 2:
                    percent = (float)4.1;
                    break;
                case 3:
                    percent = 5 * (float)1.2;
                    break;
                case 4:
                    percent = 7 * (float)1.2;
                    break;
                case 5:
                    percent = 5 * 2;
                    break;
                case 6:
                    percent = 6 * (float)1.3;
                    break;
                case 7:
                    percent = 7 * 2;
                    break;
                case 8:
                    percent = 8 * 2;
                    break;
                default:
                    if (parameter.PoolCount > 8)
                    {
                        percent = 20;
                    }
                    else
                    {
                        percent = 0;
                    }
                    break;

            }

            if (parameter.IsReport)
            {
                percent += (float)7;
            }

            return percent;
            //float ratioHeight = (float)height / (float)width;
            //float ratioWidth = (float)width / (float)height;
            ////// use whichever multiplier is smaller
            ////float ratio = ratioX < ratioY ? ratioX : ratioY;

            //if (ratioHeight > ratioWidth)
            //{
            //    float multiplicand = 4;
            //    if (poolCount >= 4)
            //    {
            //        multiplicand = poolCount;
            //        if (multiplicand > 5)
            //        {
            //            multiplicand = multiplicand * (float).75;
            //        }
            //    }

            //    percent = (float)multiplicand * ratioHeight;
            //    return percent;
            //}

            //if (poolCount == 1)
            //{
            //    return (float)4.5;
            //}

            //if (width > 25000)
            //{
            //    percent = 4;// *ratio;
            //}
            //else if (width > 20000 && width < 25000)
            //{
            //    percent = 5;// *ratio;
            //}
            //else if (width > 15000 && width < 20000)
            //{
            //    percent = 5;
            //}
            //else if (width > 10000 && width < 15000)
            //{
            //    percent = 5;
            //}
            //else if (width > 5000 && width < 10000)
            //{
            //    percent = 55;
            //}
            //else if (width > 3000 && width < 5000)
            //{
            //    percent = 95;
            //}
            //else
            //{
            //    percent = 100;
            //}
            //return percent;
        }
        private string ResizeImage(float percent)
        {
            Image imgToResize = Image.FromFile(
                PathResolver.MapPath(
                    string.Format(@"Diagrams\wmf_temp\{0}", this.fileName))
                );

            float nPercent     = 0;
            int   sourceWidth  = imgToResize.Width;
            int   sourceHeight = imgToResize.Height;

            ResizeStrategyParameter parameter = new ResizeStrategyParameter()
            {
                Type      = type,
                Width     = sourceWidth,
                Height    = sourceHeight,
                PoolCount = poolCount,
                IsReport  = isReport,
            };


            nPercent = percent;


            int destWidth  = (int)(sourceWidth * (nPercent * .01));
            int destHeight = (int)(sourceHeight * (nPercent * .01));

            Bitmap plain = new Bitmap(destWidth, destHeight);

            Graphics imageContainer = Graphics.FromImage((Image)plain);

            imageContainer.InterpolationMode  = InterpolationMode.HighQualityBicubic;
            imageContainer.CompositingMode    = CompositingMode.SourceCopy;
            imageContainer.CompositingQuality = CompositingQuality.HighQuality;
            imageContainer.SmoothingMode      = SmoothingMode.HighQuality;
            imageContainer.PixelOffsetMode    = PixelOffsetMode.HighQuality;
            imageContainer.Clear(Color.White);
            imageContainer.DrawImage(imgToResize, 0, 0, destWidth, destHeight);

            imageContainer.Dispose();
            imgToResize.Dispose();

            string fileName = FileManager.GetFileName(this.fileName);


            //excess white space removal
            Image cropped = WhiteSpaceRemover.AutoCrop(plain);

            plain = (Bitmap)cropped;
            //excess white space removal

            string savePath = string.Empty;

            if (!isReport)
            {
                savePath = string.Format(@"{0}\{1}",
                                         PathResolver.MapPath(GlobalStringResource.DiagramsFolder),
                                         fileName);
            }
            else
            {
                savePath = string.Format(@"{0}\{1}",
                                         PathResolver.MapPath(GlobalStringResource.SlicedResizedFolder),
                                         fileName);
            }

            plain.Save(savePath);

            cropped.Dispose();
            plain.Dispose();

            return(string.Format(
                       GlobalStringResource.ImageSavePathFormat,
                       isReport ? GlobalStringResource.SlicedResizedFolder : GlobalStringResource.DiagramsFolder,
                       fileName));
        }
        private string ResizeImage(float percent)
        {
            Image imgToResize = Image.FromFile(
                    PathResolver.MapPath(
                        string.Format(@"Diagrams\wmf_temp\{0}", this.fileName))
                                );

            float nPercent = 0;
            int sourceWidth = imgToResize.Width;
            int sourceHeight = imgToResize.Height;

            ResizeStrategyParameter parameter = new ResizeStrategyParameter()
            {
                Type = type,
                Width = sourceWidth,
                Height = sourceHeight,
                PoolCount = poolCount,
                IsReport = isReport,
            };

            nPercent = percent;

            int destWidth = (int)(sourceWidth * (nPercent * .01));
            int destHeight = (int)(sourceHeight * (nPercent * .01));

            Bitmap plain = new Bitmap(destWidth, destHeight);

            Graphics imageContainer = Graphics.FromImage((Image)plain);
            imageContainer.InterpolationMode = InterpolationMode.HighQualityBicubic;
            imageContainer.CompositingMode = CompositingMode.SourceCopy;
            imageContainer.CompositingQuality = CompositingQuality.HighQuality;
            imageContainer.SmoothingMode = SmoothingMode.HighQuality;
            imageContainer.PixelOffsetMode = PixelOffsetMode.HighQuality;
            imageContainer.Clear(Color.White);
            imageContainer.DrawImage(imgToResize, 0, 0, destWidth, destHeight);

            imageContainer.Dispose();
            imgToResize.Dispose();

            string fileName = FileManager.GetFileName(this.fileName);

            //excess white space removal
            Image cropped = WhiteSpaceRemover.AutoCrop(plain);
            plain = (Bitmap)cropped;
            //excess white space removal

            string savePath = string.Empty;

            if (!isReport)
            {
                savePath = string.Format(@"{0}\{1}",
                    PathResolver.MapPath(GlobalStringResource.DiagramsFolder),
                    fileName);
            }
            else
            {
                savePath = string.Format(@"{0}\{1}",
                    PathResolver.MapPath(GlobalStringResource.SlicedResizedFolder),
                    fileName);
            }

            plain.Save(savePath);

            cropped.Dispose();
            plain.Dispose();

            return string.Format(
                GlobalStringResource.ImageSavePathFormat,
                isReport ? GlobalStringResource.SlicedResizedFolder : GlobalStringResource.DiagramsFolder,
                fileName);
        }
Пример #10
0
        public override float GetPercentage(ResizeStrategyParameter parameter)
        {
            float percent = 0;

            switch (parameter.PoolCount)
            {
            case 1:
                percent = (float)4;
                break;

            case 2:
                percent = (float)4.1;
                break;

            case 3:
                percent = 5 * (float)1.2;
                break;

            case 4:
                percent = 7 * (float)1.2;
                break;

            case 5:
                percent = 5 * 2;
                break;

            case 6:
                percent = 6 * (float)1.3;
                break;

            case 7:
                percent = 7 * 2;
                break;

            case 8:
                percent = 8 * 2;
                break;

            default:
                if (parameter.PoolCount > 8)
                {
                    percent = 20;
                }
                else
                {
                    percent = 0;
                }
                break;
            }

            if (parameter.IsReport)
            {
                percent += (float)7;
            }

            return(percent);
            //float ratioHeight = (float)height / (float)width;
            //float ratioWidth = (float)width / (float)height;
            ////// use whichever multiplier is smaller
            ////float ratio = ratioX < ratioY ? ratioX : ratioY;



            //if (ratioHeight > ratioWidth)
            //{
            //    float multiplicand = 4;
            //    if (poolCount >= 4)
            //    {
            //        multiplicand = poolCount;
            //        if (multiplicand > 5)
            //        {
            //            multiplicand = multiplicand * (float).75;
            //        }
            //    }

            //    percent = (float)multiplicand * ratioHeight;
            //    return percent;
            //}

            //if (poolCount == 1)
            //{
            //    return (float)4.5;
            //}

            //if (width > 25000)
            //{
            //    percent = 4;// *ratio;
            //}
            //else if (width > 20000 && width < 25000)
            //{
            //    percent = 5;// *ratio;
            //}
            //else if (width > 15000 && width < 20000)
            //{
            //    percent = 5;
            //}
            //else if (width > 10000 && width < 15000)
            //{
            //    percent = 5;
            //}
            //else if (width > 5000 && width < 10000)
            //{
            //    percent = 55;
            //}
            //else if (width > 3000 && width < 5000)
            //{
            //    percent = 95;
            //}
            //else
            //{
            //    percent = 100;
            //}
            //return percent;
        }
Пример #11
0
 public abstract float GetPercentage(ResizeStrategyParameter parameter);