问题描述:制作上传头像缩略图,希望图片能够等比例剪切,类似豆瓣的头像上传功能

搜索答案:本来以为这样的问题应该很好搜答案,baidu google搜了一遍发现都是直接制作缩略的,没有剪切的功能。因为一直做web,很少用到gdi+的类库,只是了解点而已,按照制作缩略图的方法简单改一下就解决了。

解决代码:

 

System.Drawing.Image newImage=System.Drawing.Image.FromFile(Server.MapPath(”upimages/1.gif”));
   Bitmap b
=new Bitmap(50,50);
   Graphics g
=Graphics.FromImage(b);
   
int photoWidth=newImage.Width;
   
int photoHeight=newImage.Height;
   
int x=50,y=50;
   
int x1=50;
   
if ((photoWidth-photoHeight)>0)
   {
    y
=0;
    x
=(photoWidth-photoHeight)/2;

    x1
=photoHeight;
   }
   
else
   {
    x
=0;
    y
=(photoHeight-photoWidth)/2;
    x1
=photoWidth;
   }
   GraphicsUnit units 
= GraphicsUnit.Pixel;
   g.InterpolationMode 
= System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
   g.DrawImage(newImage, 
new Rectangle(00, b.Width, b.Height),x, y, x1,x1, units);
   b.Save(Server.MapPath(”
11.jpg”));

 

 代码很简单 就不用解释了。

备注: 为什么要把这么简单的方法写个blog呢,还是由于豆瓣的缘故,在豆瓣出现之前做头像的很少象这样直接把客户上传的图片切割的,可能是为了用户图片的完整性吧,但是豆瓣大胆的用这种简单的方法,达到了更好的效果,图片更容易被人看清楚,而且也增加了用户头像的个性。

有时候技术其实不是最主要的,一个很好的思路就能带动网站的发展。

下篇研究mop的头像上传功能,也是一个很简单的功能,但是达到了比豆瓣更加直观的效果。敬请期待

posted on 2007-11-02 09:33  jueban's space  阅读(817)  评论(0编辑  收藏  举报

导航