C#通过DrawImage将图片进行旋转
时间: 2024-10-25 20:13:10 浏览: 14
C#旋转图片
在C#中,如果你想要通过`DrawImage`方法旋转图片,你需要先创建一个新的`Graphics`对象,并使用`RotateTransform`方法对画布进行旋转,然后调用`DrawImage`。以下是基本步骤:
```csharp
using System.Drawing;
using System.Drawing.Drawing2D;
// 图片对象和Graphics对象
Bitmap originalImage = ...;
Graphics g = Graphics.FromImage(originalImage);
// 设定旋转中心、角度以及旋转模式
Point centerPoint = new Point(originalImage.Width / 2, originalImage.Height / 2);
double rotationAngleInDegrees = 45; // 例如你想旋转45度
ImageFlipMode flipMode = ImageFlipMode.None; // 保持原始方向
// 创建旋转矩阵
Matrix matrix = new Matrix();
matrix.RotateAt(rotationAngleInDegrees, centerPoint);
// 开启绘图区域,设置抗锯齿
g.Save();
g.TranslateTransform(centerPoint.X, centerPoint.Y);
g.RotateTransform(matrix);
g.TranslateTransform(-centerPoint.X, -centerPoint.Y);
g.InterpolationMode = InterpolationMode.HighQualityBicubic; // 或者其他适合的插值模式
// 现在你可以像平时那样使用DrawImage方法旋转图片
g.DrawImage(originalImage, 0, 0, null, Color.White, 0, 0,
originalImage.Width, originalImage.Height,
GraphicsUnit.Pixel, ImageAttributes.None);
// 结束绘图并保存变换
g.Restore();
// 旋转后的图片现在就在Graphics对象的上下文里了
```
阅读全文