zoukankan      html  css  js  c++  java
  • asp.net生成缩略图及给原始图加水印

    using System.IO;
    using System.Drawing.Imaging;
      private void Button1_ServerClick(object sender, System.EventArgs e)
      {
        Graphics g=null;
        System.Drawing.Image upimage=null; 
        System.Drawing.Image thumimg=null; 
        System.Drawing.Image simage=null;
        Bitmap outputfile=null;
        try
        {
          string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper();
          string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
          string smallpath = Server.MapPath(".")+"/smallimg/";
          string bigpath = Server.MapPath(".")+"/bigimg/";
          int width,height,newwidth,newheight;
          System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);    
        if(!Directory.Exists(smallpath))
         Directory.CreateDirectory(smallpath);
        if(!Directory.Exists(bigpath))
         Directory.CreateDirectory(bigpath);
        Stream upimgfile = File1.PostedFile.InputStream;
        string simagefile = Server.MapPath("a8logo.jpg"); //要加水印的文件
        simage=System.Drawing.Image.FromFile(simagefile);
        upimage= System.Drawing.Image.FromStream(upimgfile); //上传的图片
        width = upimage.Width;
        height = upimage.Height;
        if(width>height)
        {
         newwidth=200;
         newheight =(int)((double)height/(double)width * (double)newwidth);
        }
        else
        { 
         newheight=200;
         newwidth=(int)((double)width/(double)height * (double)newheight);   
        }   
        thumimg = upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero); 
        outputfile=new Bitmap(upimage);
        g=Graphics.FromImage(outputfile);
        g.DrawImage(simage,new Rectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel);
        
        string newpath = bigpath + filename + extension;     //原始图路径
        string thumpath = smallpath + filename + extension;  //缩略图路径
        outputfile.Save(newpath);
        thumimg.Save(thumpath);
        outputfile.Dispose();
        
       }
       catch(Exception ex)
       {
        throw ex;
       }
       finally
       {
        if(g!=null)
         g.Dispose();
        if(thumimg!=null)
         thumimg.Dispose();
        if(upimage!=null)
         upimage.Dispose();
        if(simage!=null)
         simage.Dispose();
       }
      }
      public bool ThumbnailCallback()
      {
       return false;
      }
  • 相关阅读:
    对JavaScript调用堆栈和setTimeout用法的深入研究
    Js中的window.parent ,window.top,window.self 代表的对象
    lhgselect 联动选择下拉菜单 v1.0.0 (20110613)
    lhgcore JavaScript Library v1.4.5 API (20110622)
    表单元素完美垂直居中
    判断 iframe 是否加载完成的完美方法
    lhgdialog 弹出窗口插件 v3.5.2 ( 20110704 )
    JS的事件冒泡和事件捕获
    程序设计原则
    python中入口函数的用法
  • 原文地址:https://www.cnblogs.com/yamajia/p/537480.html
Copyright © 2011-2022 走看看