如何在GDI+中调整图片大小后再绘制?
时间: 2024-09-14 10:08:57 浏览: 38
在GDI+中,如果你想要调整图片大小后再绘制,可以先对图片进行缩放(Scale),然后使用`Graphics`对象的`DrawImage()`方法。以下是步骤:
1. 获取缩放因子:确定你希望图片缩放的比例,例如,如果要缩小图片到原尺寸的一半,缩放因子就是0.5。
```csharp
double scaleFactor = 0.5; // 缩小一半
```
2. 使用Bitmap对象的ScaleTransform方法缩放图片:
```csharp
// 如果需要保持图片长宽比,设置InterpolationMode为HighQualityBicubic
bitmap.ScaleTransform(scaleFactor, scaleFactor, 0, 0, GraphicsUnit.Pixel, InterpolationMode.HighQualityBicubic);
```
3. 创建一个新的Bitmap对象,用于存储缩放后的结果:
```csharp
Bitmap scaledBitmap = new Bitmap(bitmap.Width, bitmap.Height);
Graphics gScaled = Graphics.FromImage(scaledBitmap);
```
4. 在新的Bitmap上绘制缩放后的图片:
```csharp
gScaled.DrawImage(bitmap, 0, 0, scaledBitmap.Width, scaledBitmap.Height);
```
5. 然后你可以像之前那样,将`scaledBitmap`绘制到`Graphics`对象上:
```csharp
Graphics graphics = pictureBox1.CreateGraphics();
graphics.DrawImage(scaledBitmap, 0, 0); // 将调整大小后的图片绘制到指定位置
```
6. 最后别忘了清理资源:
```csharp
scaledBitmap.Dispose();
gScaled.Dispose();
bitmap.Dispose();
```
阅读全文