C#编程学习46:GDI绘图接口的使用

Step 1:  定义图像:

// 创建一个Image对象
int width = 600;
int height = 400;
Image myImage = new Image(width, height);

Step 2: 将Image对象装入绘图板,之后所有的绘图操作将在绘图板上进行

Graphics myGraphic = Graphics.FromImage(myImage);

Step 3: 定义画笔、画刷、字体

// 根据RGB色值定义画笔
Pen myPen = new Pen(Color.FromArgb(255,0,0),1);
// 使用系统颜色定义画笔
Pen grayPen = new Pen(Color.Gray);
// 定义画刷
Brush blackBrush = new SolidBrush(Color.Black);
// 定义字体
Font songFont = new Font("宋体", 8, FontStyle.Bold);

Step 4: 绘制图形

注意:GDI中的坐标定义规则

  • X表示横轴,Y表示纵轴
  • 起点在绘图板的左上角,向右为X正方向,向下为Y正方向
  • X轴方向为宽度方向,Y轴方向为高度方向
// 绘制一条线,
// 参数为:画笔、起点X、起点Y、终点X、终点Y
myGraphic.DrawLine(blackPen, startPtX, startPtY, endPtX, endPtY);

// 绘制一个矩形
// 参数为:画笔、矩形左上角点X、矩形左上角点Y、矩形宽度、矩形高度
myGraphic.DrawRectangle(blackPen, x, y, w, h);

// 绘制一个圆形 -- 绘制圆形时,令长轴等于短轴即可
// 参数为:画笔、椭圆左上角点X、椭圆左上角点Y、椭圆长轴、椭圆短轴
myGraphic.DrawEllipse(blackPen, x, y, w, h);

Step 5: 绘制字符串

注意:绘制字符串时,一定要进行矩形画刷填充,否则字符串会挤成一坨,看不清

// 1. 定义字符串格式
StringFormat sf = new StringFormat{
    LineAlignment = StringAlignment.Center,
    Alignment = StringAlignment.Center,
    FormatFlags = StringFormatFlags.NoWrap
};
// 2. 定义字符串的填充矩形
Rectangle rect = new Rectangle(x, y, w, h);
myGraphic.FillRectangle(new SolidBrush(Color.White), rect);

// 3. 添加字符串到绘图板
// 参数按顺序依次为:字符串内容,字体,画刷,放置字符串的矩形、字符串格式定义
myGraphic.DrawString(context, font, brush, rect, sf);

Step 6: 将图配置给图片控件

// 配置绘制的图像到图片控件
this.pictureBox.Image = myImage;
// 销毁绘图版
myGraphic.Dispose();

更多精彩,欢迎关注

C#编程学习46:GDI绘图接口的使用

上一篇:「考试」noip模拟46-47


下一篇:46:WAF绕过-信息收集之反爬虫延时代理池技术