C# 截取图片的方法

1、C#截取图片的方法
方法一、
一个像素一个像素的画,遍历每一个像素,速度慢
///

/// 截取一张图片的制定部分
///

/// 原始图片路径名称 /// 截取图片的宽度 /// 截取图片的高度 /// 开始截取图片的X坐标 /// 开始截取图片的Y坐标 ///
public Bitmap GetPartOfImage(string bitmapPahtAndName, int width, int height, int offsetX, int offsetY)
{
Bitmap sourceBitmap = new Bitmap(bitmapPahtAndName);
Bitmap resultBitmap = new Bitmap(width, height);
for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (offsetX + x < sourceBitmap.Size.Width & offsetY + y < sourceBitmap.Size.Height) { resultBitmap.SetPixel(x, y, sourceBitmap.GetPixel(offsetX + x, offsetY + y)); } } } return resultBitmap; } 方法二、在一个知道位置画一个要截取的图像 ///

/// 截取一张图片的制定部分
///

/// 原始图片路径名称 /// 截取图片的宽度 /// 截取图片的高度 /// 开始截取图片的X坐标 /// 开始截取图片的Y坐标 ///
public Bitmap GetPartOfImageRec(string bitmapPathAndName, int width, int height, int offsetX, int offsetY)
{
Bitmap sourceBitmap = new Bitmap(bitmapPathAndName);
Bitmap resultBitmap = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(resultBitmap))
{
Rectangle resultRectangle = new Rectangle(0,0,width,height);
Rectangle sourceRectangle = new Rectangle(0 + offsetX, 0 + offsetY, width, height);
g.DrawImage(sourceBitmap, resultRectangle, sourceRectangle, GraphicsUnit.Pixel);
}
return resultBitmap;
}