c# 画图(生成缩略图失真问题)
现在画人员的工作牌。要把相片画在工作牌图片上给定的区域里   
 代码如下: 
 int   x   =   170;                                 //工作牌图片上给定区域的宽 
 int   y   =   128;                                 //工作牌图片上给定区域的高 
 //生成缩略图 
 newimg   =   img.GetThumbnailImage(x,   y,   null,   new   System.IntPtr(0));   
 //将缩略图画到工作牌图片上 
 g.DrawImage(newimg,   new   Rectangle(199,   103   +   (240   *   ii),   newimg   Width,   newimg.Height));   
 高人们进来指点下哦,谢谢了
------解决方案--------------------newimg = new Bitmap(img,new size(x,y));
------解决方案--------------------g.DrawImage(newimg, new Rectangle(199, 103 + (240 * ii), newimg Width, newimg.Height)); 
 应该改成图片的真实大小,newimg.Height  newimg.Width  这个应该在程序外面就可以知道的
------解决方案--------------------static float iTop = 128;//y值 
         static float iLeft = 170;//x值 
         static float iWidth = 200;//图片宽 
         static float iHeight = 200;//图片高 
         private void DrawImage(Image img) 
         { 
             float xScale = img.Width/iWidth;//计算x轴缩放 
             float yScale = img.Height/iHeight;//计算y轴缩放 
             float Scale = xScale >  yScale ? xScale : yScale;//取最大的缩放值 
             float leftPadding = (iWidth - img.Width / Scale)/2;//x轴偏移量 
             float topPadding = (iHeight - img.Height / Scale) / 2;//y轴偏移量   
             using (Graphics g = Graphics.FromHwnd(this.Handle)) 
             { 
                 g.DrawRectangle(new Pen(Color.Black), new Rectangle((int)iLeft-1,(int) iTop-1, (int)iWidth+1,(int) iHeight+1));//画边框 
                 g.DrawImage(img, iLeft+leftPadding, iTop+topPadding, img.Width / Scale, img.Height / Scale);//根据偏移量和缩放绘制图片 
             } 
         }
------解决方案--------------------Mark
------解决方案--------------------返回image?为什么要返回image?就是缩放而不绘制吗? 
 new一个根据Scale获取的image,把旧的image绘制到新image上,返回就可以了