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

看到某些大网站上的图片都带有水印版权信息,很羡慕吗?让我们也来打造一个这样的程序。说干就干
            <%@ 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 type="file" runat="server" />
            <asp:Label runat="server"
            forecolor="Red"></asp:Label>
            </p>
            <p>
            width:<asp:TextBox runat="server"
            Width="40px">100</asp:TextBox>
            height:<asp:TextBox runat="server"
            Width="40px">150</asp:TextBox>

            </p>
            <p>
            添加信息:<asp:TextBox
            runat="server">AspxBoy.Com</asp:TextBox>
            </p>
            <p>
            信息位置:left:<asp:TextBox runat="server"
            Width="40px">10</asp:TextBox>
            right:<asp:TextBox runat="server"
            Width="40px">135</asp:TextBox>
            </p>
            <p>

            <input type="button" value="上传生成缩略图"
            onServerClick="Button_Click" runat="server" />
            </p>
            <p><asp:Image runat="server"></asp:Image>
            </p>
            <!-- Insert content here -->
            </form>
            </body>
            </html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值