本文实例为大家分享了c#实现网页画图的具体代码,供大家参考,具体内容如下
代码贴着保存下
使用系统; 使用System.Collections; 使用System.Collections.Generic; 使用来; 使用包含; 使用System.Web.UI; 使用System.Web.UI.WebControls; 使用先; 使用System.Drawing; 使用System.Drawing.Drawing2D; 使用System.Drawing.Imaging; 公共部分类_Default: System.Web.UI.Page { int h=1000; int w=1000; 保护无效employee(对象发送方,EventArgs e) { 位图img=新的位图(h, w);//创建位图对象 MemoryStream流=画(); img。保存(流,ImageFormat.Jpeg);//保存绘制的图片 Response.Clear (); 响应。ContentType=巴枷?jpeg”; Response.BinaryWrite (stream.ToArray ()); } 公共MemoryStream画() { string[]字={“壹”,“贰”、“叁”、“肆”,“伍”,“陆”}; 位图img=新的位图(h, w);//创建位图对象 图g=Graphics.FromImage (img);//创建图形对象 g。DrawRectangle(新钢笔(颜色。白色,img.Height), 2, 2, img。宽度- 2,img。高度- 2);//矩形底色 ArrayList协调=getXY (Words.Length、img.Height img.Width); ArrayList半径=new ArrayList (); var R=新的随机(); 颜色Mycolor=Color.FromArgb (R。下(100、150),R.Next (255), R.Next (255), R.Next (255)); 字体字体=new字体(“天线”,20);//字体 LinearGradientBrush font_brush=new LinearGradientBrush(新矩形(0,0,img。宽度,img.Height),颜色。黑色,颜色。黑色,1.2度,真正的); int j=0;//画圆写的字 foreach (p点坐标) { int r=r。下(20、40); Radius.Add (r); SolidBrush布什=new SolidBrush (Mycolor); g。布什FillEllipse (p。X - r, p。Y - r, r 2 * 2 * r);//画填充椭圆的方法,x坐标,Y坐标,宽,高: g。拉带(话说[j + +),字体,font_brush, p);//标记 }//连线 var penColor=颜色。FromArgb(140年,R.Next (255), R.Next (255), R.Next (255); for (int i=1;我& lt;coordinate.Count;我+ +) { 钢笔笔=新钢笔(penColor 2); g。画直线(笔,(点)协调[0],(点)协调[我]); } MemoryStream流=new MemoryStream ();//保存绘制的图片 img。保存(流,ImageFormat.Jpeg);//保存绘制的图片 返回流; } 私人ArrayList getXY (int len, int, int w) { ArrayList al=new ArrayList (); 双d=50.0; var R=新的随机(); int h2=(int) (0.1 * h); int h3=(int) (0.9 * h); int w1=(int) (0.1 * w); int w2=(int) (0.9 * w); 而(al.Count & lt;兰) { 点p=new点(R.Next (h2、h3) R.Next (w1 w2)); bool添加=true; foreach (al q点) { 如果(Dist (p, q) & lt;d) { 添加=false; 打破; } } 如果(添加) al.Add (p); } 返回基地; } 私人双经销(p1, p2) { 返回Math.Sqrt (Math.Abs (p1。X - p2.X) * Math.Abs (p1。X - p2.X) + Math.Abs (p1。Y - p2.Y) * Math.Abs (p1。Y - p2.Y)); } }
效果如下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。