截取部分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;   


posted @ 2011-04-05 09:42  Yao,Mane  阅读(263)  评论(0编辑  收藏  举报