现在的位置: 首页 > 综合 > 正文

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

2013年11月05日 ⁄ 综合 ⁄ 共 5435字 ⁄ 字号 评论关闭

  以前,在页面上实现缩略图必须借助第三方组件。现在,有了.NET,就可以很轻松地实现缩略图。下面就是实现缩略图的例子。 

Thumbnail.aspx 

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Thumbnail.aspx.vb"
 
Inherits="aspxWeb.Thumbnail" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  
<HEAD>
    
<title>在ASP.NET里轻松实现缩略图</title>
    
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
    
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
    
<meta content="JavaScript" name="vs_defaultClientScript">
    
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  
</HEAD>
  
<body MS_POSITIONING="GridLayout">
    
<asp:Label id="Label1" runat="server"></asp:Label>
    
<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
      
<INPUT type="file" name="file" width="600"><br><br>
      
<asp:Button id="Button1" runat="server"></asp:Button>
    
</form>
  
</body>
</HTML>

 Thumbnail.aspx.vb

Imports System
Imports
 System.Web
Imports
 System.Drawing
Imports
 System.IO
Imports
 System.Drawing.Imaging

Public 
Class Thumbnail
  
Inherits
 System.Web.UI.Page
  
Protected WithEvents Label1 As
 System.Web.UI.WebControls.Label
  
Protected WithEvents Button1 As
 System.Web.UI.WebControls.Button

Web Form Designer Generated Code


  
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Label1.Text 
= "<h3>在ASP.NET里轻松实现缩略图</h3>"

    Button1.Text 
= "上载并显示缩略图"
  
End Sub


  
Private Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
    
Dim MyFileColl As HttpFileCollection =
 HttpContext.Current.Request.Files
    
Dim MyPostedFile As HttpPostedFile = MyFileColl.Item(0
)
    
If LCase(MyPostedFile.ContentType.ToString()).IndexOf("image"< 0 Then

      Response.Write(
"无效的图形格式。")
      
Exit Sub

    
End If
    GetThumbNail(MyPostedFile.FileName, 
100100, MyPostedFile.ContentType.ToString(),_
     
False
, MyPostedFile.InputStream)
  
End Sub


  
Private Function GetImageType(ByVal strContentType) As System.Drawing.Imaging.ImageFormat
    
Select Case
 (strContentType.ToString().ToLower())
      
Case "image/pjpeg"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Jpeg
      
Case "image/gif"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Gif
      
Case "image/bmp"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Bmp
      
Case "image/tiff"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Tiff
      
Case "image/x-icon"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Icon
      
Case "image/x-png"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Png
      
Case "image/x-emf"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Emf
      
Case "image/x-exif"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Exif
      
Case "image/x-wmf"

        GetImageType 
= System.Drawing.Imaging.ImageFormat.Wmf
      
Case Else

        GetImageType 
= System.Drawing.Imaging.ImageFormat.MemoryBmp
    
End Select

  
End Function


  
Private Sub GetThumbNail(ByVal strFileName, ByVal iWidth, ByVal iheight, ByVal strContentType, _
  
ByVal blnGetFromFile, ByVal
 ImgStream)
    
Dim oImg As
 Image
    
If blnGetFromFile Then

      oImg 
= oImg.FromFile(strFileName)
    
Else

      oImg 
= oImg.FromStream(ImgStream)
    
End If

    oImg 
= oImg.GetThumbnailImage(iWidth, iheight, Nothing, (New IntPtr()).Zero)
    
Dim strGuid As String = (New
 Guid()).NewGuid().ToString().ToUpper()
    
Dim strFileExt As String = strFileName.Substring(strFileName.LastIndexOf("."
))
    
'保存到本地

    'oImg.Save(Server.MapPath("images") + "" + strGuid + strFileExt, GetImageType(strContentType))
    '直接输出url文件
    'Response.Redirect("images/" + strGuid + strFileExt)
    '以下显示在屏幕上
    Response.ContentType = strContentType
    
Dim MemStream As New
 MemoryStream()
    
' 注意:这里如果直接用 oImg.Save(Response.OutputStream, GetImageType(strContentType))

    ' 对不同的格式可能会出错,比如Png格式。
    oImg.Save(MemStream, GetImageType(strContentType))
    MemStream.WriteTo(Response.OutputStream)
  
End Sub


End Class

 C#

using System;
using
 System.Collections;
using
 System.ComponentModel;
using
 System.Data;
using
 System.Drawing;
using
 System.Web;
using
 System.Web.SessionState;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Web.UI.HtmlControls;
using
 System.IO; 
using
 System.Drawing.Imaging;

namespace
 eMeng.Exam
{
/// <summary>
/// Thumbnail 的摘要说明。
/// </summary>

public class Thumbnail : System.Web.UI.Page
{
    
protected
 System.Web.UI.WebControls.Label Label1;
    
protected
 System.Web.UI.WebControls.Button Button1;

    
private void Page_Load(object
 sender, System.EventArgs e)
    
{
        
// 在此处放置用户代码以初始化页面

        Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>"
        Button1.Text 
= "上载并显示缩略图"


    }


    
Web 窗体设计器生成的代码

抱歉!评论已关闭.