C# 如何将位图旋转任意度数?
我有一个位图:C# 如何将位图旋转任意度数?,c#,bitmap,rotation,C#,Bitmap,Rotation,我有一个位图: Bitmap UnitImageBMP 我需要把它旋转任意角度。我该怎么做?RotateFlip方法只能以90度的增量旋转。我对您进行了一些搜索,发现了以下内容: public static Bitmap RotateImage(Bitmap b, float angle) { //create a new empty bitmap to hold rotated image Bitmap returnBitmap = new Bitmap(b.Width, b.Hei
Bitmap UnitImageBMP
我需要把它旋转任意角度。我该怎么做?RotateFlip方法只能以90度的增量旋转。我对您进行了一些搜索,发现了以下内容:
public static 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
using(Graphics g = Graphics.FromImage(returnBitmap))
{
//move rotation point to center of image
g.TranslateTransform((float)b.Width / 2, (float)b.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 Point(0, 0));
}
return returnBitmap;
}
这可能有效,但也存在一些问题。首先,如果位图图像是矩形,则新位图图像将截断图像。这大概可以通过使新位图成为最大边的正方形来解决。然而,即使这样做了,我也在经历剪辑。如果可以的话,我会贴一张照片。我在某种程度上解决了这个问题。我只是将我的原始位图图像做成一个正方形(带有额外的空白)。RotateImage代码现在可以正常工作了,我将转换后的图像以白色显示为透明。多懒的回答啊!你从这里复制并粘贴了这段代码:你说懒答案,我说懒问题——我至少把询问者连接到了另一个源代码。虽然我承认我应该和它联系起来。