在ASP.NET里轻松实现缩略图

本文介绍如何使用ASP.NET轻松创建图片的缩略图。通过上传文件并利用C#编程,可以判断文件类型并生成相应格式的缩略图。支持多种图片格式,包括JPEG、GIF等。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %>

<!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" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server" enctype="multipart/form-data">
    
<div>
    
<asp:Label id="Label1" runat="server"></asp:Label>

    
<INPUT type="file" name="file" width="600"><br><br>
        
<asp:FileUpload ID="FileUpload1" runat="server"/>
      
<asp:Button id="Button1" runat="server" OnClick="Button1_Click"></asp:Button>

    
</div>
    
</form>
</body>
</html>

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.IO;
using System.Drawing.Imaging;


public partial class Default5 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
// 在此处放置用户代码以初始化页面
        Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>";
        Button1.Text 
= "上载并显示缩略图";
    }


    
protected void Button1_Click(object sender, System.EventArgs e)
    
{
        HttpFileCollection MyFileColl 
= HttpContext.Current.Request.Files;
        
//HttpPostedFile MyPostedFile = MyFileColl[0];
        HttpPostedFile MyPostedFile = FileUpload1.PostedFile;

        
if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image"< 0)
        
{
            Response.Write(
"无效的图形格式。");
            
return;
        }

        GetThumbNail(MyPostedFile.FileName, 
100100,
            MyPostedFile.ContentType.ToString(), 
false, MyPostedFile.InputStream);
    }

    
private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
    
{
        
if ((strContentType.ToString().ToLower()) == "image/pjpeg")
        
{
            
return System.Drawing.Imaging.ImageFormat.Jpeg;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/gif")
        
{
            
return System.Drawing.Imaging.ImageFormat.Gif;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/bmp")
        
{
            
return System.Drawing.Imaging.ImageFormat.Bmp;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/tiff")
        
{
            
return System.Drawing.Imaging.ImageFormat.Tiff;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/x-icon")
        
{
            
return System.Drawing.Imaging.ImageFormat.Icon;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/x-png")
        
{
            
return System.Drawing.Imaging.ImageFormat.Png;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/x-emf")
        
{
            
return System.Drawing.Imaging.ImageFormat.Emf;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/x-exif")
        
{
            
return System.Drawing.Imaging.ImageFormat.Exif;
        }

        
else if ((strContentType.ToString().ToLower()) == "image/x-wmf")
        
{
            
return System.Drawing.Imaging.ImageFormat.Wmf;
        }

        
else
        
{
            
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
        }

    }


    
private void GetThumbNail(string strFileName, int iWidth, int iheight,
        
string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
    
{
        System.Drawing.Image oImg;

        
if (blnGetFromFile)
        
{
            oImg 
= System.Drawing.Image.FromFile(strFileName);
        }

        
else
        
{
            oImg 
= System.Drawing.Image.FromStream(ImgStream);
        }

        oImg 
= oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
        
string strGuid = System.Guid.NewGuid().ToString().ToUpper();
        
string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
        Response.ContentType 
= strContentType;
        MemoryStream MemStream 
= new MemoryStream();
        oImg.Save(MemStream, GetImageType(strContentType));
        MemStream.WriteTo(Response.OutputStream);
    }

}

转载于:https://www.cnblogs.com/sw22225458/archive/2007/12/09/988370.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值