GDI+

GDI+提供二维图形,图像处理等功能,是Windows操作系统的子系统,提供了图形图像操作的应用程序接口(API).
1.创建Graphics对象
Graphics是GDI+的核心,Graphics对象表示GDI+绘图表面,提供将对象绘制到显示设备的方法…Graphics类封装了绘制直线,曲线,圆形,图像和文本的方法,是进行GDI+的基础类.创建Graphics对象有以下三种方法.
a.在窗体或控件的Paint事件中创建.在为控件创建绘制代码时,通常用此方法来获取对图形对象的引用.
private void Form1_Paint(project sender,PaintEventArgs e)
{Graphics g=e.Graphics;}
b.调用控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面.如果对已存在的窗体或控件上绘图,用此方法.
private void Form1_Load(object sender, EventArgs e)
{
Graphics g;
g = this.CreateGraphics();
}
c.由从Image继承的任何对象创建Graphics对象,此方法在需要更改已存在的图像时十分有用
例:在窗体Form_Load事件中通过FormImage方法创建Graphics对象.
Private void Form_Load(object sender,EventArgs e)
{
Bitmap mbit=new Bitmap(@“C:\ls.bmp”);
Graohics g=Graphics.FormImage(mbit);
}
2.创建Pen对象
Pen类主要用于绘制线条,或者将线条组合成其他几何形状.Pen的构造函数如下
public Pen(Color color,float width)
Pen mypen =new pen(Color.Blue,2);
3.创建Brush对象
Brush类主要用于填充几何图形,如将正方形和圆形填充其他颜色.Brush类是一个抽象基类,不能进行实例化.若要创建画笔对象,需要从Brush派生出的类,如SolidBursh,HatchBrush等
a.SolidBrush类
SolidBrush类定义单色画笔,画笔用于填充图形形状
Brush mybrush=new SolidBrush(color.red);

 Graphics g = this.CreateGraphics();

            Brush mybs = new SolidBrush(Color.Red);
            Rectangle rc = new Rectangle(10, 10, 100, 100);
            g.FillRectangle(mybs,rc);///使用Brush填充Rectangle

b.HatchBrush类
该类提供了一种特定样式的图形,用来制作填满整个封闭区域的绘图效果.

        Graphics ghs = this.CreateGraphics();
        for (int i = 0; i <= 6; i++)
        {
            HatchStyle hs = (HatchStyle)(5 + i);//设置HatchStyle的值
            HatchBrush hb = new HatchBrush(hs, Color.Red);//实例化HatchBrush类
            Rectangle rt = new Rectangle(10, 50 * i, 50 * i, 10);
            ghs.FillRectangle(hb, rt);
        }

c.LinerGradientBrush类
该类提供一种渐变色彩特效,填充图形的内部区域.
语法:
public LinerGradientBrush(Point point1,Point point2,Color color1,Color color2)
point1表示线性渐变的开始点
point2表示结束点
color1开始色彩
color2结束色彩

 private void button2_Click(object sender, EventArgs e)
        {

            Point p1 = new Point(100, 100);
            Point p2 = new Point(150, 150);
            LinearGradientBrush lgb = new LinearGradientBrush(p1, p2, Color.Red, Color.Gold);
            Graphics g = this.CreateGraphics();
            lgb.WrapMode = WrapMode.TileFlipX;//设置WrapMode属性指示lgb的环绕模式
            g.FillRectangle(lgb, 15, 15, 150, 150);
        }

猜你喜欢

转载自blog.csdn.net/qq_41368899/article/details/83502390