I think Marcus Kramer is on the right track. I experimented with setting the resolution of the new bitmap and got better results. Below is from my test program. Some of the other properties I experimented with are commented out below. You may or may not want to do further experimentation with those properties.
Font font = new Font("Tahoma", 10, FontStyle.Regular);
Brush brush = new SolidBrush(Color.Black) ;
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
Pen pen = new Pen(Color.Blue,1);
Rectangle rectangle = new Rectangle(100, 100, 600, 600);
Bitmap image = new Bitmap(800, 800);
image.SetResolution(300, 300);
Graphics graphic = Graphics.FromImage(image);
graphic.DrawRectangle(pen, rectangle);
graphic.DrawString("Test", font, brush, rectangle, format);
image.Save("EndImage.bmp");
MessageBox.Show("EndImage.bmp generated successfully in Bin Folder");
System.Diagnostics.Process.Start("EndImage.bmp");
image.Dispose();
graphic.Dispose();
Tested on Visual Studio 2012