private static Bitmap resizeImage(Bitmap imgToResize, System.Drawing.Size size, int spacing)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)((sourceWidth * nPercent) - spacing * 4);
int destHeight = (int)((sourceHeight * nPercent) - spacing * 4);
int leftOffset = (int)((size.Width - destWidth) / 2);
int topOffset = (int)((size.Height - destHeight) / 2);
Bitmap b = new Bitmap(size.Width, size.Height);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
g.DrawLines(System.Drawing.Pens.Silver, new PointF[] {
new PointF(leftOffset - spacing, topOffset + destHeight + spacing), //BottomLeft
new PointF(leftOffset - spacing, topOffset -spacing), //TopLeft
new PointF(leftOffset + destWidth + spacing, topOffset - spacing)});//TopRight
g.DrawLines(System.Drawing.Pens.Gray, new PointF[] {
new PointF(leftOffset + destWidth + spacing, topOffset - spacing), //TopRight
new PointF(leftOffset + destWidth + spacing, topOffset + destHeight + spacing), //BottomRight
new PointF(leftOffset - spacing, topOffset + destHeight + spacing),}); //BottomLeft
g.DrawImage(imgToResize, leftOffset, topOffset, destWidth, destHeight);
g.Dispose();
return b;
}