asp.net2.0按比例生成图片的缩略图

1、建立Default.aspx文件和文件夹upFile
asp.net2.0按比例生成图片的缩略图_第1张图片
2、Default..aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

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">
    
<div>
        传图片:
<INPUT id="upImage" type="file" name="File1" runat="server">
        
<asp:button id="btnUp" runat="server" Text="上传" OnClick="btnUp_Click">asp:button><br />
        原图片:
<asp:image id="imageSource" runat="server">asp:image><br />
        缩略图:
<asp:image id="imageSmall" runat="server">asp:image>div>
    
form>
body>
html>


3、Default..aspx.cs代码如下:

using System;
using
 System.Data;
using
 System.Configuration;
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;

public partial class
 _Default : System.Web.UI.Page 
{

    System.Drawing.Image image, newimage; 
//定义image类的对象

    protected string imagePath;          //图片路径
    protected string imageType;          //图片类型
    protected string imageName;          //图片名称
    
//
提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
    
//如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false

    System.Drawing.Image.GetThumbnailImageAbort callb = null;

    
protected void Page_Load(object
 sender, EventArgs e)
    {

    }
    
protected void btnUp_Click(object
 sender, EventArgs e)
    {
        
string
 mPath;

        
if ("" !=
 upImage.PostedFile.FileName)
        {
            imagePath 
=
 upImage.PostedFile.FileName;
            
//取得图片类型

            imageType = imagePath.Substring(imagePath.LastIndexOf("."+ 1);
            
//取得图片名称

            imageName = imagePath.Substring(imagePath.LastIndexOf("//"+ 1);
            
//判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片

            if ("JPG"!= imageType.ToUpper() && "GIF" != imageType.ToUpper())
            {
                Response.Write(
" alert('对不起!请您选择jpg或者gif格式的图片!');"
);
                
return
;
            }
            
else

            {
                
try
                {
                    
//建立虚拟路径
                    mPath = Server.MapPath("upFile");
                    
//保存到虚拟路径

                    upImage.PostedFile.SaveAs(mPath + "//" + imageName);
                    
//显示原图

                    imageSource.ImageUrl = "upFile/" + imageName;
                    
//为上传的图片建立引用

                    image = System.Drawing.Image.FromFile(mPath + "//" + imageName);

                    
int smallW = 100;//小图片宽

                    int smallH = smallW * image.Height / image.Width;//小图片高
                    
//生成缩略图

                    newimage = image.GetThumbnailImage(smallW, smallH, callb, new System.IntPtr());
                    
//把缩略图保存到指定的虚拟路径

                    newimage.Save(Server.MapPath("upFile"+ //small + imageName);
                    
//释放image对象占用的资源

                    image.Dispose();
                    
//释放newimage对象的资源

                    newimage.Dispose();
                    
//显示缩略图

                    imageSmall.ImageUrl = "upFile/" + "small" + imageName;
                }
                
catch

                {
                    Response.Write(
"上传失败!");
                }

            }
        }
    }
}


4:运行效果如下: 
asp.net2.0按比例生成图片的缩略图_第2张图片

 

 

你可能感兴趣的:(.NET绘图与多媒体)