求助asp.net中如何将写代码将大图改为缩略图!追加分

asp.net中如何将写代码将大图改为缩略图!!用asp.net技术,怎么才可以像QQ相册那样,点击缩略图能查看原图的那种,怎么做???是不是要用到组件的啊,用组件又是如何的!!!
代码是如何的,请同时给出前台同后台的代码,这样我就可以复制一下,是不是我想要的那样的效果,谢谢啦

现已补充完整,实现点击缩略图打开新窗口显示大图效果,仅指定一个图片进行示例,多个图片请自行扩展:

楼上的是将图片的显示尺寸缩小的方法,但图片的大小未变。
我给出的是一个生成缩略图的自定义函数:只要在aspx.cs(代码文件)中调用,并给出已存在的原始图片的文件名称和希望缩略成的高度,就可以自动在网站中指定文件夹生成缩略图文件。
下面代码中我指定存放原始图片的文件夹是网站根目录下的pic,缩略图存放文件夹是网站根目录下的pic1。你直接复制到代码文件中即可使用,并可根据自身情况进行改动。

//============ 缩略图生成自定义函数 ============
private void ResizeImage(int height, string fileName)
{
string webFilePath = Server.MapPath("pic/" + fileName); //获取原图的服务器端文件路径
string webFilePath_s = Server.MapPath("pic1/" + fileName); //获取缩略图的服务器端文件路径
//使用System.Drawing命名空间的Image类的FromFile方法创建Image对象,参数为从中创建 Image 的文件的名称
System.Drawing.Image image = System.Drawing.Image.FromFile(webFilePath);
//GetThumbnailImage方法可返回 Image 对象的缩略图,参数为请求的缩略图的宽度(像素)、高度等。
System.Drawing.Image img = image.GetThumbnailImage(image.Width * height / image.Height , height , null , IntPtr.Zero);
img.Save(webFilePath_s, System.Drawing.Imaging.ImageFormat.Jpeg); //Image类的Save方法将此 Image 对象以指定格式保存到指定文件
img.Dispose(); //将图像占用资源释放
image.Dispose(); //将图像占用资源释放
}

比如,tree.jpg文件存放在网站根目录下的pic文件夹中,并且网站根目录下已有文件夹pic1,我输入代码 ResizeImage(150, "tree.jpg");
就可以生成一个高为150像素的小图片tree.jpg文件,存放在pic1文件夹中。

假设网站根目录下有2个页面a.aspx和b.aspx以及pic文件夹和pic1文件夹,pic文件夹中已存在图像tree.jgp图片文件。当浏览a.aspx页面时,自动生成缩略图并显示在页面上,单击缩略图,则打开b.aspx,显示原始图像。
下面是2个页面的对应关键代码:
1、a.aspx的页面代码及其对应的a.aspx.cs文件的代码:
a.aspx页面代码:
在<body></body>中插入如下代码,以显示缩略图
<img src="pic1/tree.jpg" style="cursor:pointer;" alt="点击看大图" onclick="javascript:window.open('b.aspx','big')"/>
a.aspx.cs文件的代码:
在Page_Load中加入 ResizeImage(150, "tree.jpg"); 语句,并在Page_Load下方复制如下的生成缩略图自定义函数:
private void ResizeImage(int height, string fileName)
{
string webFilePath = Server.MapPath("pic/" + fileName);
string webFilePath_s = Server.MapPath("pic1/" + fileName);
System.Drawing.Image image = System.Drawing.Image.FromFile(webFilePath);
System.Drawing.Image img = image.GetThumbnailImage(image.Width * height / image.Height, height, null, IntPtr.Zero);
img.Save(webFilePath_s, System.Drawing.Imaging.ImageFormat.Jpeg);
img.Dispose();
image.Dispose();
}
2、b.aspx页面代码
在<body></body>中插入如下代码,以显示原始图像
<img src="pic/tree.jpg" />

到此搞定你的要求
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-24
给你一种简单的方法
讲大图等比例缩小
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>css等比例缩小图片</title>
<head>
<style type="text/css">
<!--
body {
text-align: center;
margin: 20px auto;
padding: 0px;
font-size:14px;
color:red
}
#pic{
margin:5px auto;
width:500px;
padding:0;
border:1px solid #333;
}
#pic img{
max-width:200px;
width:expression(document.body.clientWidth > 200?"200px":"auto" );
display:block;
border:0
}

-->
</style>
</head>
<body>将宽度强制为200px后图片高度被等比例缩小
<div id="pic">
<a href="#"><img src="http://www.codefans.net/jscss/demoimg/wall5.jpg" /></a>
</div>
原图:
<br />
<img src="http://www.codefans.net/jscss/demoimg/wall5.jpg" />
</body>

求助asp.net中如何将写代码将大图改为缩略图!追加分
比如,tree.jpg文件存放在网站根目录下的pic文件夹中,并且网站根目录下已有文件夹pic1,我输入代码 ResizeImage(150, "tree.jpg");就可以生成一个高为150像素的小图片tree.jpg文件,存放在pic1文件夹中。假设网站根目录下有2个页面a.aspx和b.aspx以及pic文件夹和pic1文件夹,pic文件夹中已存在图...

求asp.net 图片上传压缩图片大小代码 就是减小图片的分辨率存储图片到服 ...
\/\/\/ 生成缩略图重载方法2,将缩略图文件保存到指定的路径 \/\/\/ \/\/\/ 缩略图的宽度 \/\/\/ 缩略图的高度 \/\/\/ 缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg \/\/\/ <returns>成功返回true,否则返回false<\/returns> public bool GetReducedImage(int Width,int Height,string tar...

用ASP.NET在网页上显示缩略图
你在设计之初就设计不对了,不要把图片用二进制放到数据库中,这样读取很慢,而且占用太大的数据库,导致网站速度更慢,你可以只保存图片的路径到数据库,这样读取的时候只要读取图片路径就可以了

asp.net(vb)创建缩略图
第一个用于加载原始图片(AutoSize属性设置为True)第二个用于生成缩略图的,大小调整成你的缩略图的大小(设置AutoRedraw属性为True)用如下方法,可以生成缩略图(不过是bmp格式的,如果你要用别的格式,可以用工具批量转换一下 Private Sub Command1_Click()Picture2.PaintPicture Picture1.Picture, 0, 0, P...

请问如何把数据库中的图片读出生成缩略图?sql server+c#.net)
直接输入一个宽度让他缩放就行了 <asp:image imageurl='<%# eval("url") %>' with="30" \/> 不用指定高度,图像会自动缩放到合适的百分比 那你让C#显示的时候再重新按照源图进行缩放,生成一个新图片,这样的成本会不会有点高了?如果确实要做,你可以用Drawing类,先用 System.Drawing.Image...

谁有ASP上传自动生成缩略图的代码
’ 图片所在位置 path = server.mappath("images") & "\\clock.jpg"’ 打开 jpeg.open path ’ 设置缩略图大小(这里比例设定为50%)jpeg.width = jpeg.originalwidth \/ 2 jpeg.height = jpeg.originalheight \/ 2 ’ 保存缩略图到指定文件夹下 jpeg.save server.mappath("images") & "\\clock_...

ASP.NET 如何缩小图片的物理大小,又能保证图片的清晰。生成缩略图的方式...
基本做不到,或者采用矢量图技术处理原图,大致满足实际需求即可,清晰基本做不到。要求客户上传一小一大两张图比较好。

asp 实现图片上传的时候压缩他
Set Jpeg = Server.CreateObject("Persits.Jpeg") '调用组件 Path = Server.MapPath("..\/") & "\\" & BigImgFile '待缩小图片路径 放在根目录 你可以制定文件夹 在..\/后面 Jpeg.Open Path '打开图片 L = 120\/80'缩略图高与宽比 你如果只限制宽度就不用下面else的高度比例判断 只按宽度的...

ASP.net(C#)批量上传图片
( )自行设定生成缩略图的大小 ( )可以选择是否需要生成文字水印 图片水印 默认为不生成水印图 ( )可以添加 删除所需上传的图片 在本程序中均加了相关注释 所以直接发代码 不再多作解释 后台程序 using System;using System Collections;using System Configuration;using System Data;using System...

asp.net上传图片缩放并转成二进制
您可以把原图路径放入数据库中,读取的时候直接读路径就可以,缩略图路径也放入数据库中,一样的,一个表,两个字段,就行,为什么一定要把图片转换成二进制呢?非要转换二进制的话,保存图片的时候,直接保存在表中,读取的时候,一直把字段帮顶给 ...

相似回答
大家正在搜