当前位置: 首页 > 编程笔记 >

C#实现网页画图功能

公羊俊
2023-03-14
本文向大家介绍C#实现网页画图功能,包括了C#实现网页画图功能的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了C#实现网页画图的具体代码,供大家参考,具体内容如下

代码贴着保存下

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
 
public partial class _Default : System.Web.UI.Page
{
  int h = 1000;
  int w = 1000;
  protected void Page_Load(object sender, EventArgs e)
  {
    Bitmap img = new Bitmap(h, w);//创建Bitmap对象
    MemoryStream stream = draw();
 
    img.Save(stream, ImageFormat.Jpeg);     //保存绘制的图片
    Response.Clear();
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(stream.ToArray());
  }
 
  public MemoryStream draw()
  {
    string[] Words = {"壹","贰","叁","肆","伍","陆"};
    Bitmap img = new Bitmap(h, w);//创建Bitmap对象
    Graphics g = Graphics.FromImage(img);//创建Graphics对象
    g.DrawRectangle(new Pen(Color.White, img.Height), 2, 2, img.Width - 2, img.Height - 2); //矩形 底色
 
 
    ArrayList coordinate = getXY(Words.Length,img.Height,img.Width);
    ArrayList Radius = new ArrayList();
 
    var R = new Random();
    Color Mycolor = Color.FromArgb(R.Next(100, 150), R.Next(255), R.Next(255), R.Next(255));
 
    Font font = new Font("Arial", 20);// 字体
    LinearGradientBrush font_brush = new LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Black, Color.Black, 1.2F, true);
 
    int j = 0;
    //画圆 写字
    foreach (Point p in coordinate)
    {
      int r = R.Next(20, 40);
      Radius.Add(r);
      SolidBrush bush = new SolidBrush(Mycolor);
      g.FillEllipse(bush, p.X - r, p.Y - r, 2*r, 2*r);//画填充椭圆的方法,x坐标、y坐标、宽、高:
 
      g.DrawString(Words[j++], font, font_brush, p); // 标记
    }
 
    //连线
    var penColor = Color.FromArgb(140, R.Next(255), R.Next(255), R.Next(255));
    for (int i = 1; i < coordinate.Count; i++) 
    {
      Pen pen = new Pen(penColor, 2);
      g.DrawLine(pen, (Point)coordinate[0], (Point)coordinate[i]);
    }
    
    MemoryStream stream = new MemoryStream();  //保存绘制的图片
    img.Save(stream, ImageFormat.Jpeg);     //保存绘制的图片
    return stream;
  }
 
  private ArrayList getXY(int len, int h, int w) 
  {
    ArrayList al = new ArrayList();
    double d = 50.0;
    var R = new Random();
    int h1 = (int)(0.1 * h);
    int h2 = (int)(0.9 * h);
    int w1 = (int)(0.1 * w);
    int w2 = (int)(0.9 * w);
 
    while (al.Count < len) 
    {
      Point p = new Point(R.Next(h1,h2), R.Next(w1,w2));
      bool Add = true;
      foreach (Point q in al) 
      {
        if (Dist(p, q) < d)
        {
          Add = false;
          break;
        }
      }
      if (Add)
        al.Add(p);
 
    }
 
    return al;
  }
 
  private double Dist(Point p1,Point p2) 
  {
    return 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));
  }
}

效果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍C#实现将网页保存成图片的网页拍照功能,包括了C#实现将网页保存成图片的网页拍照功能的使用技巧和注意事项,需要的朋友参考一下 本文实例主要实现了网页照相机程序的功能。C#实现将网页保存成图片格式,简单实现网页拍照,主要是基于ActiveX 组件的网页快照类,AcitveX 必须实现 IViewObject 接口。因此读者完全可扩展此类将其用于你的C#软件项目中。在此特别感谢作者:随飞

  • 本文向大家介绍Django实现网页分页功能,包括了Django实现网页分页功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Django实现分页功能,为了容易区别功能的展现,先创建一个数据库,用数据库中的数据做演示。 创建数据库步骤如下: 1.创建模型,代码如下: 2.向数据库中添加数据,代码如下: 添加之后将代码就可以注释掉了,我们演示的时候再新建一个select接口作为演示界面

  • 本文向大家介绍java实现画图板功能,包括了java实现画图板功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现画图板的具体代码,供大家参考,具体内容如下 画图板需要满足的功能有: 画线,画三角形,画矩形,画多边形,画曲线 设置不同颜色的画笔 改变窗口大小或最小化窗口后重新打开时图案不消失 画图方法的编写: 创建一个类,继承JPanel类,重写JPanel的绘制方法,重

  • 本文向大家介绍Android简单实现画图功能,包括了Android简单实现画图功能的使用技巧和注意事项,需要的朋友参考一下 如何在图片上画画呢?这里写了一个demo,供大家参考 一、先看一眼工程结构 工程结构: 二、自定义view 这个自定义view实现了保留轨迹的功能,代码如下 三、主页面布局文件 主页面布局文件 四、主Activity代码 五、效果 运行效果图如下 六、疑问 当线条变粗时,线条

  • 本文向大家介绍JS实现网页烟花动画效果,包括了JS实现网页烟花动画效果的使用技巧和注意事项,需要的朋友参考一下 原生js实现放烟花效果,点击鼠标,然后向四周扩散,最后自由落体效果!最简单的方法实现! 效果图: CSS代码: js代码: 更多JavaScript精彩特效分享给大家: Javascript菜单特效大全 javascript仿QQ特效汇总 JavaScript时钟特效汇总 以上就是本文的

  • 本文向大家介绍php实现网页端验证码功能,包括了php实现网页端验证码功能的使用技巧和注意事项,需要的朋友参考一下 我们在实际开发中,会用到短信验证码以及网页验证码,相对来说网页验证码的成本比较低,安全系数也还可以,接下来我们就来做一个网页端的验证码,直接上代码: 首先来说一下文件目录结构:     |----------phpyanzheng  项目文件夹       |----fonttype