宝哥软件园

ASP.NET生成缩略图实现代码

编辑:宝哥软件园 来源:互联网 时间:2021-10-12

复制代码如下:使用System使用系统。集合。通用;使用系统。Linq使用系统。Web使用系统。绘图;使用系统。IO;命名空间web layer 3 {///summary////显示请求图片的缩略图,最大单位为100像素的宽度。////summary public class img small : ihttphandler {//图片所在的文件夹是静态字符串图片路径=@ ' d: word pictures public void process request(HttpContext上下文){ context。response . ContentType=' image/JPEG ';//获取传输的img字符串,如//http://localhost 33605002/imgsmall . ashx?Img=abacus8.jpg此字符串img=context . request . params[' img '];字符串路径=picturesPath img//如果文件存在,就会被读取,所以如果(file。存在(路径)){//加载此图片图像大=图像。FromFile(路径);//下面的代码if (big!=null) {//设置最大宽度,可以修改为生成更小的缩略图int newWidth=100//根据图片的长宽比生成位图位图=新位图(新宽度,新宽度* big.height/big.width);//根据画板创建一个图片图形g=graphics。来自图像(位图);用(g) {//把大图大画成自己定义的小图。位图g.drawimage (big,0,0,bitmap.width,bitmap . height);//直接将处理后的位图以jpeg格式保存到响应输出流中!位图。保存(上下文。响应。输出流,系统。drawing . imaging . imageformat . Jpeg);}}} else {//否则,向浏览器上下文发送文件不存在的消息. response . content type=' text/html ';语境。响应。写入(“文件不存在”);//或者发送文件不存在的图片。//context . response . write file(‘todo更改为图片所在的路径’);} } public bool IsReuse { get { return false;}}}}这是一个通用的处理程序,只需要给它发送一个文件名的参数(可以修改为发送图片的序列号id)就可以在浏览器上显示图片。例如,下面的GridView控件中使用了这个处理程序image

在缩略图字段中,将其DataImageUrlField设置为文件名,这是数据库中的一个字段(我初学的时候喜欢用中文字段,很容易理解),然后将其DataImageUrlFormatString设置为:imgSmall.ashx?Img={0},以便在生成html代码时将{0}替换为文件名字段的内容。实际效果如图:image所示。

缩略图很小,只有3040字节,读者也可以发现,当浏览器请求图片时,请求的地址是imgSmall.ashx?img=abacus8.jpg

更多资讯
游戏推荐
更多+