如何在C#中实现图片缩放
http://www.z6688.com/info/34815-1.htm

解决方案 »

  1.   

    请看视频:
    http://download.csdn.net/source/321082
      

  2.   

    public void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
      {
       WebRequest wr=WebRequest.Create(originalImagePath);
       WebResponse res=wr.GetResponse(); 
       System.Drawing.Image originalImage =  System.Drawing.Image.FromStream(res.GetResponseStream());
       //System.Drawing.Image.FromFile(originalImagePath);
        //originalImagePath 来源路径
        //thumbnailPath 目的路径
        //width 源图片宽
        //height 源图片高
        //mode 缩放模式
                
       int towidth = width;
       int toheight = height;
           
       int x = 0;
       int y = 0;
       int ow = originalImage.Width;
       int oh = originalImage.Height;          switch (mode)
       {       
        case "HW"://指定高宽缩放(可能变形)               
         break;
        case "W"://指定宽,高按比例                   
         toheight = originalImage.Height * width/originalImage.Width;
         break;
        case "H"://指定高,宽按比例
         towidth = originalImage.Width * height/originalImage.Height;                   
         break;       
        case "Cut"://指定高宽裁减(不变形)               
         if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
         {
          oh = originalImage.Height;
          ow = originalImage.Height*towidth/toheight;
          y = 0;
          x = (originalImage.Width - ow)/2;
         }
         else
         {
          ow = originalImage.Width;
          oh = originalImage.Width*height/towidth;
          x = 0;
          y = (originalImage.Height - oh)/2;
         }
         break;
        case "D":
         if((double)originalImage.Width>(double)originalImage.Height)
         {
          toheight = originalImage.Height * width/originalImage.Width;
         }
         else
         {
          towidth = originalImage.Width * height/originalImage.Height;
         }
         break;
        default :
         break;
       }   
               
       //新建一个bmp图片
       System.Drawing.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
       {           
        //以jpg格式保存缩略图
        bitmap.Save( Server.MapPath(".")+"\\"+thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
       }
       catch(System.Exception e)
       {
        throw e;
       }
       finally
       {
        originalImage.Dispose();
        bitmap.Dispose();                       
        g.Dispose();
       }
      } 
      

  3.   

    http://www.cnblogs.com/xmg1982/articles/1202241.html
    http://www.cnblogs.com/aqiang/articles/1188728.html
      

  4.   

    http://blog.csdn.net/ojekleen/archive/2008/08/01/2754255.aspx