美文网首页
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