zoukankan      html  css  js  c++  java
  • 在ASP.NET中上传图片并生成带版权信息的缩略图

    前台:
    <HTML>
        
    <HEAD>
            
    <title>WebForm3</title>
                
    </HEAD>
        
    <body>
            
    <form id="Form1" method="post" runat="server">
                
    &nbsp;<INPUT id="loadFile" type="file" runat="server">
                
    <asp:Button id="Button1" runat="server" Text="Button"></asp:Button><BR>
                
    <asp:Image id="Image1" runat="server"></asp:Image></form>
        
    </body>
    </HTML>

    后台CS代码:
     1/// <summary>
     2        /// 生成缩略图
     3        /// </summary>
     4        /// <param name="fileName">原文件</param>
     5        /// <param name="width">宽度</param>
     6        /// <param name="height">高度</param>

     7        private void CreateThumbnailImage( string fileName,string smallPath,int width,int height )
     8        {    
     9            //版权信息
    10            string strAdd = "www.wander.com";
    11            //生成的缩略图的名字=年月日+文件大小(防止文件名相同)
    12            string newFileName = smallPath;
    13
    14            System.Drawing.Image image,newImage;
    15            //载入原图像
    16            image = System.Drawing.Image.FromFile( Server.MapPath( fileName ) );
    17            //回调
    18            System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort( callBack );
    19            //生成缩略图
    20            newImage = image.GetThumbnailImage( width,height,callb,new System.IntPtr() );
    21            
    22            AddInfo( newImage,strAdd,newFileName,16 );
    23            
    24            image.Dispose();
    25            newImage.Dispose();
    26
    27            Image1.ImageUrl = newFileName;
    28        }

    29
    30        /// <summary>
    31        /// 添加版权信息
    32        /// </summary>
    33        /// <param name="image"></param>
    34        /// <param name="strAdd"></param>
    35        /// <param name="newFileName"></param>
    36        /// <param name="fontSize"></param>

    37        private void AddInfo( System.Drawing.Image image,string strAdd,string newFileName,int fontSize )
    38        {
    39            Response.Clear();
    40            Bitmap b = new Bitmap( image );
    41            Graphics  g = Graphics.FromImage( b );
    42            g.DrawString( strAdd,new Font( "宋体",fontSize ),new SolidBrush( Color.Red ),image.Width/2-80 ,image.Height-30 );
    43            b.Save( Server.MapPath( newFileName ),System.Drawing.Imaging.ImageFormat.Gif );
    44        }

    45
    46        private bool callBack()
    47        {
    48            return true;
    49        }

    50
    51        private void Button1_Click(object sender, System.EventArgs e)
    52        {
    53            if( loadFile.PostedFile != null )
    54            {
    55                //判断是不是图像文件
    56                if( loadFile.PostedFile.ContentType.ToLower().IndexOf( "image" ) < 0 )
    57                {
    58                    //文件类型错误
    59                }

    60                else
    61                {    
    62                    string ext = loadFile.PostedFile.FileName.Substring( loadFile.PostedFile.FileName.LastIndexOf( "." ) );
    63                    //生成新的原文件名 年月日+文件大小+扩展名
    64                    string path = "Uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + ext ;
    65                    //加上版权信息的文件
    66                    string newPath = "Uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + "new" + ext ;
    67                    //缩略图文件名
    68                    string newFileName = "uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + "small.gif";
    69                    //上传原图
    70                    loadFile.PostedFile.SaveAs( Server.MapPath( path ) );
    71                    //生成缩略图
    72                    CreateThumbnailImage( path,newFileName,200,300 );
    73
    74                    //给原图加上版权信息
    75                    System.Drawing.Image image = System.Drawing.Image.FromFile( Server.MapPath( path ) );
    76                    AddInfo( image,"www.wander.com",newPath,20 );
    77                    image.Dispose();
    78                }

    79            }

    80        }

    其实把版权信息改成水印的也很简单,只需要修改AddInfo方法即可
  • 相关阅读:
    关于地址添加 子窗体向父窗体传值 树的使用详细
    C# 常见面试题2
    微软2014实习生及秋令营技术类职位在线测试
    【面试题004】c/c++字符串,替换空格
    【面试题003】c数组做为参数退化的问题,二维数组中的查找
    【面试题001】类型转换关键字,空类对象模型,拷贝构造函数,赋值运算符函数
    【面试题002】java实现的单例模式,c++实现单例模式,实现禁止拷贝
    【设计模式6原则总结】
    【设计模式六大原则6】开闭原则(Open Close Principle)
    【设计模式六大原则5】迪米特法则(Law Of Demeter)
  • 原文地址:https://www.cnblogs.com/wander/p/528375.html
Copyright © 2011-2022 走看看