图片上传生成缩略图,并使用JQuery实现鼠标移动到缩略图显示相应的大图的例子



  代码  

HTML code
   
   
< head runat ="server" > < script type ="text/javascript" src ="script/jquery-1.3.2-vsdoc2.js" > script > < link href = " css/btn.css " type = " text/css " rel = " Stylesheet " / > < title > title > head > < body > < form id = " form1 " runat = " server " > < div > < asp:FileUpload ID = " FileUp " runat = " server " CssClass = " green1 " / > < asp:Button ID = " btnUp " runat = " server " Text = " 上传 " CssClass = " green1 " onclick = " btnUp_Click " / ><br / > < asp:Panel ID = " Panel1 " runat = " server " > asp:Panel > < asp:Image ID = " ImShow " runat = " server " ImageUrl = " Images/3f76deb8623b1.jpg " Width = " 300px " / > div > < script type = " text/javascript " > var $ur = $( " #ImShow " ).attr( " src " ) $( " image[src*='ico'] " ).hover( function () { var $url = $( this ).attr( " src " ); $( " #ImShow " ).attr( " src " , $url); }, function () { $( " #ImShow " ).attr( " src " , $ur); }); script > form > body > html >


代码  
 
C# code
   
   
public void QueryIco() { string path = Server.MapPath( " ~/Images " ); DirectoryInfo dirinfo = new DirectoryInfo(Server.MapPath( " ~/ico " )); FileInfo[] files = dirinfo.GetFiles( " *.jpg " ); foreach (FileInfo file in files) { System.Web.UI.WebControls.Image im = new System.Web.UI.WebControls.Image(); im.ImageUrl = " ico/ " + file.Name; this .Panel1.Controls.Add(im); if (Panel1.Controls.Count % 4 == 0 ) { // 使Panel中动态换行 this .Panel1.Controls.Add( new LiteralControl( " " )); } } } protected void btnUp_Click( object sender, EventArgs e) { // 得到上传的路径 string path = Server.MapPath( " Images/ " ); // 得到应用程序虚拟路径 // string path1 = ApplicationPath + "/Images/"; string path2 = Server.MapPath( " ~/ico/ " ); string type = System.IO.Path.GetExtension(FileUp.FileName).ToLower(); if (FileUp.HasFile) { if (type != " .jpg " ) { Response.Write( "" ); } else { string filename = this .FileUp.FileName; if (FileUp.PostedFile.ContentLength > 1024 * 2 * 1024 ) { Response.Write( "" ); } else { FileUp.SaveAs(path + FileUp.FileName); this .ImShow.ImageUrl = " Images/ " + FileUp.FileName; MakeSmallImg(FileUp.PostedFile.InputStream, path2 + filename, 100 , 200 ); // Response.Write(""); QueryIco(); } } } } // 按模版比例生成缩略图(以流的方式获取源文件) // 生成缩略图函数 // 顺序参数:源图文件流、缩略图存放地址、模版宽、模版高 // 注:缩略图大小控制在模版区域内 public static void MakeSmallImg(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight) { // 从文件取得图片对象,并使用流中嵌入的颜色管理信息 System.Drawing.Image myImage = System.Drawing.Image.FromStream(fromFileStream, true ); // 缩略图宽、高 System.Double newWidth = myImage.Width, newHeight = myImage.Height; // 宽大于模版的横图 if (myImage.Width > myImage.Height || myImage.Width == myImage.Height) { if (myImage.Width > templateWidth) { // 宽按模版,高按比例缩放 newWidth = templateWidth; newHeight = myImage.Height * (newWidth / myImage.Width); } } // 高大于模版的竖图 else { if (myImage.Height > templateHeight) { // 高按模版,宽按比例缩放 newHeight = templateHeight; newWidth = myImage.Width * (newHeight / myImage.Height); } } // 取得图片大小 System.Drawing.Size mySize = new Size(( int )newWidth, ( int )newHeight); // 新建一个bmp图片 System.Drawing.Image bitmap = new System.Drawing.Bitmap(mySize.Width, mySize.Height); // 新建一个画板 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); // 设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; // 设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; // 清空一下画布 g.Clear(Color.White); // 在指定位置画图 g.DrawImage(myImage, new System.Drawing.Rectangle( 0 , 0 , bitmap.Width, bitmap.Height), new System.Drawing.Rectangle( 0 , 0 , myImage.Width, myImage.Height), System.Drawing.GraphicsUnit.Pixel); /// 文字水印 // System.Drawing.Graphics G=System.Drawing.Graphics.FromImage(bitmap); // System.Drawing.Font f=new Font("宋体",10); // System.Drawing.Brush b=new SolidBrush(Color.Black); // G.DrawString("myohmine",f,b,10,10); // G.Dispose(); /// 图片水印 // System.Drawing.Image copyImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("pic/1.gif")); // Graphics a = Graphics.FromImage(bitmap); // a.DrawImage(copyImage, new Rectangle(bitmap.Width-copyImage.Width,bitmap.Height-copyImage.Height,copyImage.Width, copyImage.Height),0,0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel); // copyImage.Dispose(); // a.Dispose(); // copyImage.Dispose(); // 保存缩略图 bitmap.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); myImage.Dispose(); bitmap.Dispose(); }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值