Search code examples
c#graphicsrotationclipping

Rotate Bitmap (Rectangle) While Maintining Area


How can I rotate an Bitmap a given number of degrees while maintaining the area of the original bitmap. ie, what I rotate a bitmap of Width:100,Height:200, my end result will be a bigger image but the rotated portion will still have an area of 100*200


Solution

  • The graphics transform function is perfect for this. Create a new bitmap of the size you want, create a graphics object based off that bitmap, apply the transform then draw onto the canvas (graphics.drawimage(original_image)).

    Here is a much better example than I can give at this time.

    And Bobpowell.net is a site I usually reference back to for great explanations on transforms.