see 
asp.net上传图片并同时生成缩略图
http://www.pconline.com.cn/pcedu/empolder/net/10309/215678.html

解决方案 »

  1.   

    CSDN - 文档中心 - .net      
      
    标题     用ASP.NET上传图片并生成可带版权信息的缩略图    xiahouwen(原作)  
      
    关键字     缩略图,上传, 
      
    <%@ Page Language="C#" ResponseEncoding="gb2312" %>
    <%@ import Namespace="System" %>
    <%@ import Namespace="System.IO" %>
    <%@ import Namespace="System.Drawing" %>
    <%@ import Namespace="System.Drawing.Imaging" %>
    <script runat="server">    void Page_Load(Object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
       ImgPreview.Visible=false;
            }
        }
        void GetThumbnailImage(int width,int height,string strInfo,int left,int right)
        {
            string file="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1);
      string newfile="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1)+".jpg";
            string strAdd=strInfo;
            System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(file));
            System.Drawing.Image thumbnailImage =
            oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
            Response.Clear();
            Bitmap output=new Bitmap(thumbnailImage);
            Graphics g=Graphics.FromImage(output);
            g.DrawString(strAdd,new Font("Courier New", 14),new SolidBrush(Color.Red),left,right);
      output.Save(Server.MapPath(newfile),System.Drawing.Imaging.ImageFormat.Jpeg);
                    Response.ContentType = "image/gif";
      ImgPreview.Visible=true;
      ImgPreview.ImageUrl=newfile;
        }
        bool ThumbnailCallback()
        {
                 return true;
        }
        
        void Button_Click(object sender, EventArgs e)
        {
            int width,height,left,right;
            string strAddInfo=txtAddInfo.Text;
            width=Int32.Parse(txtWidth.Text);
            height=Int32.Parse(txtHeight.Text);
            left=Int32.Parse(txtLeft.Text);
            right=Int32.Parse(txtRight.Text);
            if(!(uploadFile.PostedFile.ContentLength>0))
            {
                lblErrInfo.Text="没有选择文件";
            }
            else
            {
        
                string path = Server.MapPath("./Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1));
                if(File.Exists(path))
                {
                    lblErrInfo.Text="已经有同名文件";
                }
                else
                {
                    uploadFile.PostedFile.SaveAs(path); 
        GetThumbnailImage(width,height,strAddInfo,left,right);
                }   
            }    
        }
    </script>
    <html>
    <head>
    </head>
    <body>
        <form method="post" enctype="multipart/form-data" runat="server">
            <p>
                <input id="uploadFile" type="file" runat="server" />
                <asp:Label id="lblErrInfo" runat="server" forecolor="Red"></asp:Label>
            </p>
            <p>
                width:<asp:TextBox id="txtWidth" runat="server" Width="40px">100</asp:TextBox>
                &nbsp;height:<asp:TextBox id="txtHeight" runat="server" Width="40px">150</asp:TextBox>
                &nbsp;
            </p>
            <p>
                添加信息:<asp:TextBox id="txtAddInfo" runat="server"> AspxBoy.Com</asp:TextBox>
            </p>
            <p>
                信息位置:left:<asp:TextBox id="txtLeft" runat="server" Width="40px">10</asp:TextBox>
                &nbsp;right:<asp:TextBox id="txtRight" runat="server" Width="40px">135</asp:TextBox>
            </p>
            <p>
                &nbsp;
                <input id="button" type="button" value="上传生成所略图" onServerClick="Button_Click" runat="server" />
            </p>
      <p><asp:Image id="ImgPreview" runat="server"></asp:Image>
      </p>
            <!-- Insert content here -->
        </form>
    </body>
    </html>