How to Make Thumbnail Image in C#

  1. public static Bitmap CreateThumbnail(string filename, int width, int height)  
  2. {  
  3.   
  4.     Bitmap bmpOut = null;  
  5.     try  
  6.     {  
  7.         Bitmap loBMP = new Bitmap(filename);  
  8.         ImageFormat loFormat = loBMP.RawFormat;  
  9.   
  10.         decimal lnRatio;  
  11.         int lnNewWidth = 0;  
  12.         int lnNewHeight = 0;  
  13.   
  14.         //*** If the image is smaller than a thumbnail just return it  
  15.         if (loBMP.Width < width && loBMP.Height < height)  
  16.             return loBMP;  
  17.   
  18.         if (loBMP.Width > loBMP.Height)  
  19.         {  
  20.             lnRatio = (decimal)width / loBMP.Width;  
  21.             lnNewWidth = width;  
  22.             decimal lnTemp = loBMP.Height * lnRatio;  
  23.             lnNewHeight = (int)lnTemp;  
  24.         }  
  25.   
  26.         else  
  27.         {  
  28.             lnRatio = (decimal)height / loBMP.Height;  
  29.             lnNewHeight = height;  
  30.             decimal lnTemp = loBMP.Width * lnRatio;  
  31.             lnNewWidth = (int)lnTemp;  
  32.   
  33.         }  
  34.   
  35.         bmpOut = new Bitmap(lnNewWidth, lnNewHeight);  
  36.         Graphics g = Graphics.FromImage(bmpOut);  
  37.         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;  
  38.         g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);  
  39.         g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);  
  40.   
  41.         loBMP.Dispose();  
  42.     }  
  43.     catch  
  44.     {  
  45.         return null;  
  46.     }  
  47.     return bmpOut;  
  48. }