title: Get resulting size of RotateTransform
body: <p>I've got the following code for rotating an image in C#:</p>
  
  <pre><code>private Bitmap RotateImage(Bitmap b, float angle)
  {
      //create a new empty bitmap to hold rotated image
      Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
  
      //make a graphics object from the empty bitmap
      Graphics g = Graphics.FromImage(returnBitmap);
      //move rotation point to center of image
      g.TranslateTransform((float)returnBitmap.Width / 2, (float)returnBitmap.Height / 2);
  
      //rotate
      g.RotateTransform(angle);
      //move image back
      g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
      //draw passed in image onto graphics object
      g.DrawImage(b, new Rectangle(new Point(0, 0), new Size(b.Width, b.Height)));
      return returnBitmap;
  }
  </code></pre>
  
  <p>It works very well, except that it clips the result when it exceeds original bounds.</p>
  
  <p>As I understood, I have to set returnBitmap's size to the size of image after rotation. But how do I find how big the result will be, to set size of the new bitmap accordingly?</p>