日期:2014-05-18  浏览次数:20472 次

怎么实现图片略缩图效果?用C#
就是显示一张小图片,然后点击后可以打开另一个页面,显示该图片的实际大小
小图片是生成的还是把原来的大图片缩小了?
请高手给解答一下,说一下原理,
最好是能给个示例代码,C#版的
先谢过了~

------解决方案--------------------
//生成缩略图
//MyPostFile 上传的图片文件
//SavaPath 保存缩略图完整路径
//MyWidth 缩略图的宽度
//MyHeight 缩略图的高度
public void SmallImgW(System.Web.HttpPostedFile MyPostFile, string SavePath, System.Double MyWidth, System.Double MyHeight)
{ //取得图片对象
System.Drawing.Image myimage=System.Drawing.Image.FromStream(MyPostFile.InputStream,true);
//判断原图片大小 指定高宽裁减(不变形)
System.Double newwidth, newheight;
if (myimage.Width > myimage.Height)
{
newwidth = MyWidth;
newheight = myimage.Height * (newwidth / myimage.Width);
}
else
{
newheight = MyHeight;
newwidth = (newheight / myimage.Height) * myimage.Width;
}


//新建一个bmp图片
System.Drawing.Image mybitmap = new System.Drawing.Bitmap((int)newwidth, (int)newheight);

//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(mybitmap);

//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

//清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
//在指定位置画图
g.DrawImage(myimage, new System.Drawing.Rectangle(0, 0, mybitmap.Width,mybitmap.Height),new System.Drawing.Rectangle(0, 0, myimage.Width,myimage.Height),System.Drawing.GraphicsUnit.Pixel);

try
{
//以jpg格式保存缩略图
mybitmap.Save(SavePath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (System.Exception e)
{
throw e;
}
finally
{
//释放对象
myimage.Dispose();
mybitmap.Dispose();
g.Dispose();
}

}


网上很多,自已找到改一下