/// <summary>
        /// 返回新的后缀
        /// </summary>
        /// <param name="fromFileStream">文件流</param>
        /// <param name="fileSaveUrl">保存地址,后缀为gif,png,jpg,所有其它后缀会统一改成jpg</param>
        /// <param name="templateWidth">最大宽度</param>
        /// <param name="templateHeight">最大高度</param>
        /// <param name="jpgQuality">压缩质量</param>
        /// <returns></returns>
        public static string MakeSmallImg(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight, int jpgQuality)
        {
            //从文件取得图片对象,并使用流中嵌入的颜色管理信息
            System.Drawing.Image myImage = System.Drawing.Image.FromStream(fromFileStream, true);
            //缩略图宽、高
            System.Double newWidth = myImage.Width, newHeight = myImage.Height;
            //宽大于模版的横图
            if (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.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空一下画布
            g.Clear(Color.Transparent);
            //在指定位置画图
            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();
            //保存缩略图
            int i = fileSaveUrl.LastIndexOf('.');
            string name = fileSaveUrl.Substring(0, i);
            string exten = fileSaveUrl.Substring(i + 1).ToLower();
            ImageFormat format = ImageFormat.Jpeg;
            switch (exten)
            {
                case "png": format = ImageFormat.Png; break;
                case "gif": format = ImageFormat.Gif; break;
                default: exten = "jpg"; fileSaveUrl = name + ".jpg"; break;
            }
            if (File.Exists(fileSaveUrl)) { File.Delete(fileSaveUrl); }
            if (format == ImageFormat.Jpeg)
            {
                EncoderParameters encoderParams = new EncoderParameters();
                long[] quality = new long[1];
                quality[0] = jpgQuality;
                EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                encoderParams.Param[0] = encoderParam;
                //获得包含有关内置图像编码解码器的信息的ImageCodecInfo 对象.
                ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();
                ImageCodecInfo jpegICI = null;
                for (int x = 0;
                x < arrayICI.Length;
                x++)
                {
                    if (arrayICI[x].FormatDescription.Equals("JPEG"))
                    {
                        jpegICI = arrayICI[x];
                        //设置JPEG编码
                        break;
                    }
                }

bitmap.Save(fileSaveUrl, jpegICI, encoderParams);
            }
            else
            {
                bitmap.Save(fileSaveUrl, format);
            }
            g.Dispose();
            myImage.Dispose();
            bitmap.Dispose();
            return exten;
        }

//处理图片上传
            var fileCtl = FV.Row.FindControl("fuPicture") as FileUpload;
            if (fileCtl.HasFile)
            {
                //上传图片

string path = (EditPersonalCode == "New" ? EditOrgCode : e.Keys["OrgCode"].ToString()).Replace('.', '/');
                string fix = fileCtl.FileName.Substring(fileCtl.FileName.LastIndexOf('.') + 1).ToLower();
                if (fix != "jpg" && fix != "png" && fix != "bmp" && fix != "gif")
                {
                    e.Cancel = true;
                    ShowAlert("请重新选择照片上传\\n错误的图片格式:" + fix);
                    return;
                }

string photoFilePath = Server.MapPath("~/OrgData/") + path;
                if (!Directory.Exists(photoFilePath)) //如果不存在就建立
                {
                    Directory.CreateDirectory(photoFilePath);
                }

string fname = string.Format("s_{0}_{1}", e.Keys["PersonalCode"], DateTime.Now.TimeOfDay.TotalSeconds);
                string newName = string.Format("{0}.{1}", fname, fix);//提示:必须用e.Keys["PersonalCode"]而不是EditPersonalCode

string fullpath = photoFilePath + "\\" + newName;
                try
                {
                    fix = Web.Base.ExtendClass.MakeSmallImg(fileCtl.FileContent, fullpath, 180, 240, 100);
                }
                catch
                {
                    e.Cancel = true;
                    ShowAlert("无法识别的图片");
                    return;
                }
                newName = string.Format("{0}.{1}", fname, fix);//重新改变了后缀
                e.NewValues.Add("PhotoFile", path + "/" + newName);
            }

转载于:https://www.cnblogs.com/yuhanzhong/archive/2011/08/10/2133306.html

添加水印(文字and图片)相关推荐

  1. java 图片添加水印(文字水印+图片水印)

    一.图片水印(水印文件覆盖到源文件上) /*** @param buffImg 源文件(BufferedImage)* @param waterImg 水印文件(BufferedImage)* @pa ...

  2. iOS 为图片 照片 添加水印 文字及图片

    上午刚接到项目一个新的小需求,给上传的图片添加水印. 就希望小组长不断给我新的小需求,一年了自己成长的太慢了,这么好的公司,这么好的环境,这么好的条件,这么差的我. 在毕业的第一家公司的项目中就了解过 ...

  3. 图片添加水印文字方法 图片批量添加水印教程

    为了防止图片被别人盗用,我们经常给图片添加自己的水印,使用Ps添加水印,但是需要要一张一张的添加,非常麻烦,所以给你大家介绍一个快速批量添加水印的方法. 使用工具:图片水印添加大师 第一步打开&quo ...

  4. Untiy添加水印并保存(包含文字转图片并打水印)

    添加水印代码: /// <summary>/// 添加水印/// </summary>/// <param name="background"> ...

  5. 图片如何添加水印文字?如何设置照片水印?

    现在人们对于版权越来越重视,把自己设计的图片展示在网络平台时,都会给图片加水印(https://www.yasuola.com/shuiyin),保证自己的图片不被别人侵犯.怎么给图片添加水印呢,小编 ...

  6. Java-PDF添加水印【文字或图片】,使用Spire.PDF for Java

    Spire.PDF for Java 有免费版与收费版,单纯使用添加水印的功能的话,测试下来 免费版就够了,以下是相关代码与官网教程 1.官网:JAVA 添加 PDF 文本水印 (e-iceblue. ...

  7. 【记录】pdf添加水印(文字、图片水印)

    先上效果图 由于透明度设置的比较低,可能看不太清右上角的是文字和图片的水印,图片打码了. 该实现中有word转pdf的方法,如有需要请移步另一个word转pdf的帖子,小白一个写的比较冗余哈. pom ...

  8. Java实现图片添加水印文字

    项目中遇到要在图片上添加水印文字,类似于像生日贺卡那种推送,就是有一张底图,然后我们需要动态替换掉上面名字,性别,部门啥的给公司人员推送一个生日祝福,一开始使用富文本和一些html转图片的工具来做,发 ...

  9. java图片添加水印文字

    jAVA图片中添加文字水印(铺满整个图片) package com.zhuozhengsoft.mark; import java.awt.AlphaComposite; import java.aw ...

  10. java 给 pdf文件添加水印 | Itext7 | 文字水印 | 图片水印 | 多重水印

    java | Itext7 水印 | 文字水印 | 图片水印 本地开发环境:jdk1.8 效果图: maven依赖: <dependency><groupId>com.itex ...

最新文章

  1. php worker类,Workerman进阶之Worker类-id属性研究
  2. React-引领未来的用户界面开发框架-读书笔记(三)
  3. YBTOJ:矛盾指数(网络流-最大权闭合图)
  4. 天津工业大学c语言题库,天津工业大学it1创新2届c语言期末复习.ppt
  5. PVSCSI还是LSI logic?VM SCSI控制器驱动的选择
  6. 动态规划——小A点菜(洛谷 P1164)
  7. mongodb 远程连接
  8. MD5 + salt 的加密算法
  9. Android开启/关闭飞行模式命令
  10. bin文件无法生成,Error: Q0147E: Failed to create Directory ./Flora_GD32.bin\ER$$.ARM.__AT_0x000000C0: File
  11. 利用python selenium+cv2破解qq空间登录滑动验证码(无法获得完整图情况)(上)
  12. HTML字体及文本样式
  13. 计算机教师成绩分析总结与反思,成绩分析总结与反思
  14. java让字体闪动_java 字体闪烁
  15. 解决Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
  16. 从零开始搭建ROS小车(绪论)
  17. c++计算圆柱体表面积
  18. dropout层加在哪里_系列解读Dropout
  19. 【用JS自制表格软件玩数据】9. 自制三维 K线图 蜡烛图
  20. 计算机科学与技术专业适合什么人,计算机科学与技术专业怎么样 主要学什么内容...

热门文章

  1. TCP协议经典数据--TCP/IP高效编程 : 改善网络程序的44个技巧
  2. 算法:删除数组中的重复项
  3. 支付宝和微信的支付流程图
  4. jsp:请求转发和重定向
  5. 前端一HTML:二十五盒子模型
  6. 汇编(8086cpu): 字节数据(byte)与字型数据
  7. 记mac电脑下pycharm配置qt-creator开发环境
  8. Android仿QQ侧滑菜单
  9. mdb导入SqlServer
  10. 二叉排序树(BST)构造与应用