C#代码
  1. using System;   
  2. using System.Drawing;   
  3. using System.Drawing.Drawing2D;   
  4. using System.Drawing.Imaging;   
  5.   
  6. namespace BLL   
  7. {   
  8.     public class ImageUtil   
  9.     {   
  10.         public static void addWatermarkImage(Graphics picture, string WaterMarkPicPath, string _watermarkPosition, int _width, int _height)   
  11.         {   
  12.             Image image = new Bitmap(WaterMarkPicPath);   
  13.             int x = 0;   
  14.             int y = 0;   
  15.             int width = image.Width;   
  16.             int height = image.Height;   
  17.             string str = _watermarkPosition;   
  18.             if (str != null)   
  19.             {   
  20.                 if (!(str == "WM_TOP_LEFT"))   
  21.                 {   
  22.                     if (str == "WM_TOP_RIGHT")   
  23.                     {   
  24.                         x = (_width – width) – 10;   
  25.                         y = 10;   
  26.                     }   
  27.                     else if (str == "WM_BOTTOM_RIGHT")   
  28.                     {   
  29.                         x = (_width – width) – 10;   
  30.                         y = (_height – height) – 10;   
  31.                     }   
  32.                     else if (str == "WM_BOTTOM_LEFT")   
  33.                     {   
  34.                         x = 10;   
  35.                         y = (_height – height) – 10;   
  36.                     }   
  37.                     else if (str == "WM_BOTTOM_MIDDLE")   
  38.                     {   
  39.                         x = (_width / 2) – (width / 2);   
  40.                         y = (_height – height) – 10;   
  41.                     }   
  42.                     else if (str == "WM_TOP_MIDDLE")   
  43.                     {   
  44.                         x = (_width / 2) – (width / 2);   
  45.                         y = 10;   
  46.                     }   
  47.                 }   
  48.                 else  
  49.                 {   
  50.                     x = 10;   
  51.                     y = 10;   
  52.                 }   
  53.             }   
  54.             picture.DrawImage(image, x, y, width, height);   
  55.             image.Dispose();   
  56.         }   
  57.   
  58.         public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)   
  59.         {   
  60.             string str;   
  61.             Image image = Image.FromFile(originalImagePath);   
  62.             int num = width;   
  63.             int num2 = height;   
  64.             int x = 0;   
  65.             int y = 0;   
  66.             int num5 = image.Width;   
  67.             int num6 = image.Height;   
  68.             if (((str = mode) != null) && (str != "HW"))   
  69.             {   
  70.                 if (!(str == "W"))   
  71.                 {   
  72.                     if (str == "H")   
  73.                     {   
  74.                         num = (image.Width * height) / image.Height;   
  75.                     }   
  76.                     else if (str == "Cut")   
  77.                     {   
  78.                         if ((((double)image.Width) / ((double)image.Height)) > (((double)num) / ((double)num2)))   
  79.                         {   
  80.                             num6 = image.Height;   
  81.                             num5 = (image.Height * num) / num2;   
  82.                             y = 0;   
  83.                             x = (image.Width – num5) / 2;   
  84.                         }   
  85.                         else  
  86.                         {   
  87.                             num5 = image.Width;   
  88.                             num6 = (image.Width * height) / num;   
  89.                             x = 0;   
  90.                             y = (image.Height – num6) / 2;   
  91.                         }   
  92.                     }   
  93.                 }   
  94.                 else  
  95.                 {   
  96.                     num2 = (image.Height * width) / image.Width;   
  97.                 }   
  98.             }   
  99.             Image image2 = new Bitmap(num, num2);   
  100.             Graphics graphics = Graphics.FromImage(image2);   
  101.             graphics.InterpolationMode = InterpolationMode.High;   
  102.             graphics.SmoothingMode = SmoothingMode.HighQuality;   
  103.             graphics.Clear(Color.Transparent);   
  104.             graphics.DrawImage(image, new Rectangle(0, 0, num, num2), new Rectangle(x, y, num5, num6), GraphicsUnit.Pixel);   
  105.             try  
  106.             {   
  107.                 image2.Save(thumbnailPath, ImageFormat.Jpeg);   
  108.             }   
  109.             catch (Exception exception)   
  110.             {   
  111.                 throw exception;   
  112.             }   
  113.             finally  
  114.             {   
  115.                 image.Dispose();   
  116.                 image2.Dispose();   
  117.                 graphics.Dispose();   
  118.             }   
  119.         }   
  120.     }   
  121.   
  122. }  

 

文章来源:http://www.svnhost.cn/Article/Detail-64.shtml