码迷,mamicode.com
首页 > Web开发 > 详细

04asp.net==========改变水印的透明度

时间:2016-01-26 21:43:28      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
           //1:接收发送过来的文件的数据.
            HttpPostedFile file =context.Request.Files["Filedata"];
            string fileName = Path.GetFileName(file.FileName);//文件名称
            string fileExt = Path.GetExtension(fileName).ToLower();//扩展名.
            string waterFile = context.Server.MapPath("/Images/error.jpg");//用来做水印的图片
            if (fileExt == ".jpg")
            {
                //创建不同的文件夹保存上传的文件.
                string dir = "/ImageUpload/"+DateTime.Now.Year+"/"+DateTime.Now.Month+"/"+DateTime.Now.Day+"/";
                Directory.CreateDirectory(Path.GetDirectoryName(context.Server.MapPath(dir)));
                //要对上传的文件进行重命名.(file.InputStream:获取上传文件的文件流)
                string fullDir = dir +Common.WebCommon.GetStreamMD5(file.InputStream)+ fileExt;
                using (Image img = Image.FromStream(file.InputStream))//指定上传的图片
                {
                    using (Bitmap map = new Bitmap(img.Width, img.Height))//创建画布
                    {
                        using (Graphics g = Graphics.FromImage(map))//为画布创建画笔.
                        {
                            using (Image waterImage = Image.FromFile(waterFile))
                            {
                                g.DrawImage(img, new Point(0,0));//将上传的图片画在了画布上.
                                //在大图上画水印图片,第二个参数;在什么位置开始画,画多么大。
                                //后面:画哪一部分.
                                g.DrawImage(waterImage, new Rectangle(img.Width - waterImage.Width, img.Height - waterImage.Height, waterImage.Width, waterImage.Height), 0, 0, waterImage.Width, waterImage.Height, GraphicsUnit.Pixel, SetImageAttr(50));//使用调整后的图片的颜色或透明度信息开始画图片.
                                map.Save(context.Server.MapPath(fullDir));//保存图片
                                context.Response.Write("ok:" + fullDir);
                            }
                        }

                    }
                }

                //file.SaveAs(context.Server.MapPath(fullDir));
                //context.Response.Write("ok:"+fullDir);
                //可以缩略图.
                //file.SaveAs(context.Server.MapPath("/ImageUpload/"+fileName));
                //context.Response.Write("ok:/ImageUpload/" + fileName);
            }

        }

        public ImageAttributes SetImageAttr(float ff)
        {
            //定义矩阵:RGBAW
            float[][] f = { 
                          new float[]{ff/100f,0,0,0,0},
                           new float[]{0,1,0,0,0},
                            new float[]{0,0,1,0,0},
                             new float[]{0,0,0,1,0},
                              new float[]{0,0,0,0,1}
                          };
            ColorMatrix colorMatrix = new ColorMatrix(f);//使用自己定义的矩阵。
            ImageAttributes imageAttr = new ImageAttributes();//指定了图像的颜色的信息
            imageAttr.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);//用我们自己定义的矩阵跳转图片的颜色信息。
            return imageAttr;
        }

  

04asp.net==========改变水印的透明度

标签:

原文地址:http://www.cnblogs.com/clcloveHuahua/p/5161665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!