截取部分BMP图像
方法1:
resultBitmap.SetPixel(x, y, sourceBitmap.GetPixel(offsetX + x, offsetY+y))
/// <summary>
/// get a certain rectangle part of a known graphic
/// </summary>
/// <param name="bitmapPathAndName">path and name of the source graphic</param>
/// <param name="width">width of the part graphic</param>
/// <param name="height">height of the part graphic</param>
/// <param name="offsetX">the width offset in the source graphic</param>
/// <param name="offsetY">the height offset in the source graphic</param>
/// <returns>wanted graphic</returns>
public Bitmap GetPartOfImage(string bitmapPathAndName, int width, int height,int offsetX,int offsetY)
{
Bitmap sourceBitmap = new Bitmap(bitmapPathAndName);
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;
}
方法2:
Graphics g = Graphics.FromImage(resultBitmap)
g.DrawImage(sourceBitmap, resultRectangle, sourceRectangle, GraphicsUnit.Pixel)
/// <summary>
/// get a certain rectangle part of a known graphic
/// </summary>
/// <param name="bitmapPathAndName">path and name of the source graphic</param>
/// <param name="width">width of the part graphic</param>
/// <param name="height">height of the part graphic</param>
/// <param name="offsetX">the width offset in the source graphic</param>
/// <param name="offsetY">the height offset in the source graphic</param>
/// <returns>wanted graphic</returns>
public Bitmap GetPartOfImage(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;