如何:裁切和缩放图像

更新:2007 年 11 月

Graphics 类提供几个 DrawImage 方法,其中的某些方法包含可用于裁切和缩放图像的源矩形参数和目标矩形参数。

示例

下面的示例从磁盘文件 Apple.gif 构造 Image 对象。该代码按照其原始尺寸绘制整个苹果图像。然后,该代码调用 Graphics 对象的 DrawImage 方法,以便在大于原始苹果图像的目标矩形中绘制该苹果图像的一部分。

DrawImage 方法通过查看源矩形来确定要绘制苹果的哪部分,这由第三、第四、第五和第六个参数来指定。在本例中,苹果在宽度和高度上均被裁切为原始尺寸的 75%。

DrawImage 方法通过查看目标矩形来确定在何处绘制裁切后的苹果以及裁切后的苹果大小,这由第二个参数指定。在本例中,目标矩形在宽度和高度上都比原始图像大 30%。

下面的插图显示原始苹果和缩放、裁切后的苹果。

裁剪和缩放

Dim image As New Bitmap("Apple.gif")

' Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0)

' Make the destination rectangle 30 percent wider and
' 30 percent taller than the original image.
' Put the upper-left corner of the destination
' rectangle at (150, 20).
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim destinationRect As New RectangleF( _
    150, _
    20, _
    1.3F * width, _
    1.3F * height)

' Draw a portion of the image. Scale that portion of the image
' so that it fills the destination rectangle.
Dim sourceRect As New RectangleF(0, 0, 0.75F * width, 0.75F * height)
e.Graphics.DrawImage( _
    image, _
    destinationRect, _
    sourceRect, _
    GraphicsUnit.Pixel)

Image image = new Bitmap("Apple.gif");

// Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0);

// Make the destination rectangle 30 percent wider and
// 30 percent taller than the original image.
// Put the upper-left corner of the destination
// rectangle at (150, 20).
int width = image.Width;
int height = image.Height;
RectangleF destinationRect = new RectangleF(
    150,
    20,
    1.3f * width,
    1.3f * height);

// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
RectangleF sourceRect = new RectangleF(0, 0, .75f * width, .75f * height);
e.Graphics.DrawImage(
    image,
    destinationRect,
    sourceRect,
    GraphicsUnit.Pixel);

编译代码

前面的示例是为使用 Windows 窗体而设计的,它需要 Paint 事件处理程序的参数 PaintEventArgse。确保用系统上有效的图像文件名和路径替换 Apple.gif。

请参见

其他资源

图像、位图和图元文件

使用图像、位图、图标和图元文件