用ASP.NET上传图片并生成可带版权信息的缩略图

类别:.NET开发 点击:0 评论:0 推荐:

<%@ 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>

http://www.aspxboy.com/ShowArticle.Aspx?ID=218

本文地址:http://com.8s8s.com/it/it45352.htm