C# 截取图片的方法
1、C#截取圖片的方法
方法一、
一個像素一個像素的畫,遍歷每一個像素,速度慢
?/// <summary>
??????? /// 截取一張圖片的制定部分
??????? /// </summary>
??????? /// <param name="bitmapPathAndName">原始圖片路徑名稱</param>
??????? /// <param name="width">截取圖片的寬度</param>
??????? /// <param name="height">截取圖片的高度</param>
??????? /// <param name="offsetX">開始截取圖片的X坐標</param>
??????? /// <param name="offsetY">開始截取圖片的Y坐標</param>
??????? /// <returns></returns>
??????? 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;
??????? }
方法二、在一個知道位置畫一個要截取的圖像
?
?/// <summary>
??????? /// 截取一張圖片的制定部分
??????? /// </summary>
??????? /// <param name="bitmapPathAndName">原始圖片路徑名稱</param>
??????? /// <param name="width">截取圖片的寬度</param>
??????? /// <param name="height">截取圖片的高度</param>
??????? /// <param name="offsetX">開始截取圖片的X坐標</param>
??????? /// <param name="offsetY">開始截取圖片的Y坐標</param>
??????? /// <returns></returns>
??????? 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;
??????? }
轉載于:https://blog.51cto.com/1906754/717877
總結
以上是生活随笔為你收集整理的C# 截取图片的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端招聘与前端卖身的困境
- 下一篇: 经常梦到一个人是怎么回事