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;
      }
  • 相关阅读:
    Java中的String为什么是不可变的? -- String源码分析
    理解值和对象-快照图
    线程Thread
    Spring Cloud中,如何解决Feign/Ribbon第一次请求失败的问题?
    不要做一个浮躁的程序员
    关于在springboot中利用@Value注解读取配置文件中的属性值得问题
    Intellij Idea expired
    javascript事件之:谈谈自定义事件
    javascript事件之: 事件冒泡, 事件捕获 ,阻止默认事件
    windows7自带远程连接工具连接不上远程,只有windows服务器版本能连接tsmmc能连接的问题
  • 原文地址:https://www.cnblogs.com/yamajia/p/537480.html
Copyright © 2011-2022 走看看