/// <summary>calculates image size based on the canvas. is this working? </summary> /// <remarks>this shoudd be a utility.</remarks> static public PointF pRatio(FloatPoint c, FloatPoint o, scaleFlags sf) { FloatPoint skaler = new Point(); float tr = 0; string omax, cmax; if (o.X >= o.Y) { omax = "width"; } else { omax = "height"; //orig } if (c.X >= c.Y) { cmax = "width"; } else { cmax = "height"; //canv } switch (cmax) { case "width": if (omax == cmax) { sf = scaleFlags.sWidth; } else { sf = scaleFlags.sHeight; } break; case "height": if (omax == cmax) { sf = scaleFlags.sHeight; } else { sf = scaleFlags.sWidth; } break; } skale: switch (sf) { case scaleFlags.sHeight: if (o.IsYG(c)) { skaler.Y = c.Y; tr = (float)((float)c.Y / (float)o.Y); skaler.X = (int)Math.Round(o.X * tr); } else { skaler = o; } break; case scaleFlags.sWidth: if (o.X > c.X) { skaler.X = c.X; tr = (float)((float)c.X / (float)o.X); skaler.Y = (int)Math.Round(o.Y * tr); } else { skaler = o; } break; } if ((skaler.X > c.X) | (skaler.Y > c.Y)) { switch (sf) { case scaleFlags.sWidth: sf = scaleFlags.sHeight; goto skale; case scaleFlags.sHeight: sf = scaleFlags.sWidth; goto skale; } } return(skaler); }