ASP.ENT 生成图片水印

   public static void MakeWaterMark(string ImgServerPath)
    {
        string WATERMARK_URL = "~/Images/etbs.png";  //水印图片路径
        string path = HttpContext.Current.Request.MapPath(ImgServerPath);  //处理水印照片


        System.Drawing.Image watermark = System.Drawing.Image.FromFile(HttpContext.Current.Request.MapPath(WATERMARK_URL));  //水印图片
        System.Drawing.Image Cover = null;


        if (System.IO.File.Exists(path))
        {
            try
            {
                Cover = System.Drawing.Image.FromFile(path);
                System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(Cover);
                g.DrawImage(watermark,
                    new System.Drawing.Rectangle(Cover.Width - watermark.Width, Cover.Height - watermark.Height, watermark.Width, watermark.Height),
                    0, 0, watermark.Width, watermark.Height,
                    System.Drawing.GraphicsUnit.Pixel);
                g.Dispose();
                watermark.Dispose();
            }
            catch (Exception ex)
            {
                //错误描述:A Graphics object cannot be created from an image that has an indexed pixel 
                //异常特殊处理
                System.Drawing.Graphics graphics;
                System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(path);
                //重新创建一个新图板
                System.Drawing.Bitmap newBmp = new System.Drawing.Bitmap(bmp.Width, bmp.Height);
                graphics = System.Drawing.Graphics.FromImage(newBmp);
                graphics.DrawImage(bmp,
                                   new System.Drawing.Rectangle(0, 0, newBmp.Width, newBmp.Height),
                                   new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height),
                                   System.Drawing.GraphicsUnit.Pixel);
                bmp = newBmp;
                //画水印
                graphics.DrawImage(watermark,
                   new System.Drawing.Rectangle(Cover.Width - watermark.Width, Cover.Height - watermark.Height, watermark.Width, watermark.Height),
                   0, 0, watermark.Width, watermark.Height,
                   System.Drawing.GraphicsUnit.Pixel);
                graphics.Dispose();
                watermark.Dispose();


                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                //网上的例程,通常是 bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
                //色彩失真明显




                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                bmp.Dispose();




           HttpContext.Current.Response.ClearContent();
           HttpContext.Current.Response.ContentType = "image/bmp";
           HttpContext.Current.Response.BinaryWrite(ms.ToArray());
           HttpContext.Current.Response.End();
            }
        }
        HttpContext.Current.Request.ContentType = "image/ipeg";
        Cover.Save(HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        Cover.Dispose();
        HttpContext.Current.Response.End();
    }

1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值