美文网首页
C#生成缩略图的函数,可直接调用的代码

C#生成缩略图的函数,可直接调用的代码

作者: hahamama | 来源:发表于2019-03-27 10:25 被阅读0次

把做工程过程中比较常用的内容做个备份,下边资料是关于C#生成缩略图的函数,可直接调用的内容。

  public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)

  {

      Image originalImage = Image.FromFile(originalImagePath);

      int towidth = width;

      int toheight = height;

      int x = 0;

      int y = 0;

      int ow = originalImage.Width;

      int oh = originalImage.Height;     

      switch (mode)

      {     

              break;

              break;

              break;     

              if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)

              {

                  oh = originalImage.Height;

                  y = 0;

                  x = (originalImage.Width - ow)/2;

              }

              else

              {

                  ow = originalImage.Width;

                  x = 0;

                  y = (originalImage.Height - oh)/2;

              }

              break;                 

          default :

              break;

      } 

      Image bitmap = new System.Drawing.Bitmap(towidth,toheight);

      Graphics g = System.Drawing.Graphics.FromImage(bitmap);

      g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

      g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

      g.Clear(Color.Transparent);     

      g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),

          new Rectangle(x, y, ow,oh),

          GraphicsUnit.Pixel);

      try

      {         

          bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);

      }

      catch(System.Exception e)

      {

          throw e;

      }

      finally

      {

          originalImage.Dispose();

          bitmap.Dispose();                     

          g.Dispose();

      }

  }

相关文章

网友评论

      本文标题:C#生成缩略图的函数,可直接调用的代码

      本文链接:https://www.haomeiwen.com/subject/ogvavqtx.html