the dimensions of your view are wrong, you don't want to draw the image in the width and height divided by 2. Because when an image is rotated it's width becomes (when referring to a perfect square) is the width times 2 times sqr(2). so if you had a width and height of like 10 then your new width (at a 45 degree angle) would be between 14 and 15... so your context is drawing a 14x14 image in a 10x10 area
you could go through some complicated math to get the perfect dimensions using geometry, or you could wing it and say | double percentRotated = (radians % M_PI_4)/M_PI_4; double newWidth = (percentRotated == 0 ? img.size.width : img.size.width * (1 + (percentRotated % 0.25)) ); and do the same thing for the height, #lazyprogrammer