上传图片画带阴影的水印[转]

ASP.NET上传图片后,要加上水印.比如网址. 文字为白色.但是当背景是白色的时候,水印根本看不到.
                  到处搜索资料,找画文字阴影的办法. 找了好几个,最后找了个老外的文章,和.Net自带文档里的说法一样.
                  居然是先画2-5个alpha值不同的灰色文字当阴影..
                  再在上面,画正常颜色的文本....汗!!!!!!!!!!!!!!!!!!111 没有办法了,只好将就用了.效果还一般.
                  Font font=new Font("Arial Black",15,FontStyle.Bold); SizeF
                  sf=g.MeasureString("ImgGood.Com",font); PointF pf=new
                  PointF(); pf.X=(250-sf.Width)/2; pf.Y=(bHeight-sf.Height)/2;
                  //新建水印bmp Bitmap floatBmp=new
                  Bitmap((int)sf.Width+3,(int)sf.Height+3,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                  //Bitmap floatBmp=new Bitmap(250,100); //Bitmap floatBmp=new
                  Bitmap((int)sf.Width,(int)sf.Height); Graphics
                  fg=Graphics.FromImage(floatBmp); //画上阴影字符 PointF pt=new
                  PointF(0,0); System.Drawing.Brush TransparentBrush0 = new
                  System.Drawing.SolidBrush(
                  System.Drawing.Color.FromArgb(50,System.Drawing.Color.Black )
                  ) ; System.Drawing.Brush TransparentBrush1 = new
                  System.Drawing.SolidBrush(
                  System.Drawing.Color.FromArgb(20,System.Drawing.Color.Black )
                  ) ;
                  fg.DrawString("ImgGood.Com",font,TransparentBrush0,pt.X,pt.Y+1);
                  fg.DrawString("ImgGood.Com",font,TransparentBrush0,pt.X+1,pt.Y);
                  fg.DrawString("ImgGood.Com",font,TransparentBrush1,pt.X+1,pt.Y+1);
                  fg.DrawString("ImgGood.Com",font,TransparentBrush1,pt.X,pt.Y+2);
                  fg.DrawString("ImgGood.Com",font,TransparentBrush1,pt.X+2,pt.Y);
                  TransparentBrush0.Dispose(); TransparentBrush1.Dispose();
                  //画上LOGO字符
                  fg.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                  //fg.Clear(Color.Black); fg.DrawString("ImgGood.Com",font,new
                  SolidBrush(Color.White),pt.X,pt.Y,StringFormat.GenericDefault);
                  //画水印到 大图 fg.Save(); fg.Dispose(); //设置透明图像的颜色属性 float[][]
                  ptsArray ={ new float[] {1, 0, 0, 0, 0}, new float[] {0, 1, 0,
                  0, 0}, new float[] {0, 0, 1, 0, 0}, new float[] {0, 0, 0,
                  0.5f, 0}, new float[] {0, 0, 0, 0, 1}}; ColorMatrix clrMatrix
                  = new ColorMatrix(ptsArray); ImageAttributes imgAttributes =
                  new ImageAttributes(); imgAttributes.SetColorMatrix(clrMatrix,
                  ColorMatrixFlag.Default,ColorAdjustType.Bitmap);
                  g.DrawImage(floatBmp,new
                  Rectangle(10,10,(int)sf.Width,(int)sf.Height),0,0,(int)sf.Width,(int)sf.Height,GraphicsUnit.Pixel,imgAttributes);
                  //========================================================================
                  g.Save(); g.Dispose(); bigBmp.Save(filePath + "B/" +
                  fileName); bigBmp.Dispose(); 代码不难,不解决了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值