全国服务热线:400-6263-721

位置:南昌达内IT教育培训学校 > 学校动态 > C#绘制图片的几个方法

C#绘制图片的几个方法

来源:南昌达内IT教育培训学校时间:2022/3/9 17:37:46

  本文介绍了使用C#绘制图片的几个方法,主要解决了以下几个问题:

  1)如何获取.gif图片中的各个帧?

  2)如何获取图片的缩略图?

  3)如何“截取”图片的指定区域?

  using System.Drawing;

  using System.Drawing.Drawing2D;

  using System.Drawing.Imaging;

  public class ImageHelper

  {

  ///

  /// 获取图片中的各帧

  ///

  /// 图片路径

  /// 保存路径

  public void GetFrames(string pPath, string pSavedPath)

  {

  Image gif = Image.FromFile(pPath);

  FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);

  //获取帧数(gif图片可能包含多帧,其它格式图片一般仅一帧)

  int count = gif.GetFrameCount(fd);

  //以Jpeg格式保存各帧

  for (int i = 0; i < count; i++)

  {

  gif.SelectActiveFrame(fd, i);

  gif.Save(pSavedPath + "\\frame_" + i + ".jpg", ImageFormat.Jpeg);

  }

  }

  ///

  /// 获取图片缩略图

  ///

  /// 图片路径

  /// 保存路径

  /// 缩略图宽度

  /// 缩略图高度

  /// 保存格式,通常可以是jpeg

  public void GetSmaller(string pPath, string pSavedPath, int pWidth, int pHeight)

  {

  try

  {

  Image smallerImg;

  Image originalImg = Image.FromFile(pPath);

  Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(ThumbnailCallback);

  smallerImg = originalImg.GetThumbnailImage(pWidth, pHeight, callback, IntPtr.Zero);

  smallerImg.Save(pSavedPath + "\\smaller.jpg", ImageFormat.Jpeg);

  }

  catch (Exception x)

  {

  //

  }

  }

  ///

  /// 获取图片指定部分

  ///

  /// 图片路径

  /// 保存路径

  /// 目标图片开始绘制处的坐标X值(通常为)

  /// 目标图片开始绘制处的坐标Y值(通常为)

  /// 目标图片的宽度

  /// 目标图片的高度

  /// 原始图片开始截取处的坐标X值

  /// 原始图片开始截取处的坐标Y值

  /// 保存格式,通常可以是jpeg

  public void GetPart(string pPath, string pSavedPath, int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)

  {

  Image originalImg = Image.FromFile(pPath);

  Bitmap partImg = new Bitmap(pPartWidth, pPartHeight);

  Graphics graphics = Graphics.FromImage(partImg);

  Rectangle destRect = new Rectangle(new Point(pPartStartPointX, pPartStartPointY), new Size(pPartWidth, pPartHeight));//目标位置

  Rectangle origRect = new Rectangle(new Point(pOrigStartPointX, pOrigStartPointY), new Size(pPartWidth, pPartHeight));//原图位置(默认从原图中截取的图片大小等于目标图片的大小)

  graphics.DrawImage(originalImg, destRect, origRect, GraphicsUnit.Pixel);

  partImg.Save(pSavedPath + "\\part.jpg", ImageFormat.Jpeg);

  }

  public bool ThumbnailCallback()

  {

  return false;

  }

  }

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1810/news/496245/违者必究! 以上就是南昌达内IT教育培训学校 小编为您整理 C#绘制图片的几个方法的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721