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;
      }
  • 相关阅读:
    lines-HDU5124(区间处理 +离散化)
    Reorder the Books-HDU5500
    Bad Hair Day-POJ3250(简单的入栈出栈)
    Count the Colors-ZOJ1610(线段树区间求)
    Just a Hook-HDU1698(线段树求区间)
    Mayor's posters-POJ2528(线段树+离散化)
    A Simple Problem with Integers-POJ3468
    Strongly connected-HDU4635
    Caocao's Bridges-HDU4738(Tarjin+求桥)
    Warm up-HUD4612(树的直径+Tarjin缩点)
  • 原文地址:https://www.cnblogs.com/yamajia/p/537480.html
Copyright © 2011-2022 走看看