首页 > 开发 > 综合 > 正文

上传图片画带阴影的水印.(C#)

2024-07-21 02:17:42
字体:
来源:转载
供稿:网友
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(); 代码不难,不解决了 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表