读书人

GDI+基础知识经过画刷构建画笔

发布时间: 2012-12-18 12:43:41 作者: rapoo

GDI+基础知识——通过画刷构建画笔

先看效果:

GDI+基础知识——经过画刷构建画笔

private void CreatePenFromBrush_Click(object sender, System.EventArgs e)
{
Graphics gg = this.CreateGraphics();
gg.SmoothingMode = SmoothingMode.HighQuality;
if(m_Bitmap == null)
{
m_Bitmap = new Bitmap(ClientSize.Width,ClientSize.Height);
gg.Clear(Color.White);
}
Graphics g = Graphics.FromImage(m_Bitmap);
g.SmoothingMode = SmoothingMode.HighQuality;
g.Clear(Color.White);

//构造线性渐变画刷
LinearGradientBrush LineargradientBrush = new LinearGradientBrush(new Rectangle(0,0,10,10),
Color.Blue,Color.Red, LinearGradientMode.ForwardDiagonal);

//从线性渐变画刷中构造画笔
Pen pen = new Pen(LineargradientBrush);
pen.Width = 10;
//绘制矩形
g.DrawRectangle(pen,10,10,100,100);

LinearGradientBrush LineargradientBrush45 = new LinearGradientBrush(
new Rectangle(10,0,40,40),
Color.Yellow,Color.Red,45f,true);
pen = new Pen(LineargradientBrush45);
pen.Width = 40;

g.TranslateTransform(130,0);
g.DrawRectangle(pen,10,10,100,100);

//装入纹理图片
Bitmap image = new Bitmap("butterfly.bmp");
//构造纹理画刷
//TextureBrush tBrush = new TextureBrush(image);
TextureBrush tBrush = new TextureBrush(image,WrapMode.TileFlipXY);
//将画刷传入画笔的构造函数
Pen texturedPen = new Pen(tBrush,50);

//设置贝塞尔曲线的起止点及控制点
Point p1 = new Point(10, 100);
Point c1 = new Point(100, 10);
Point c2 = new Point(350, 350);
Point p2 = new Point(400, 300);
g.TranslateTransform(130,0);
//绘制贝塞尔曲线
g.DrawBezier(texturedPen, p1, c1, c2, p2);
g.FillRectangle(LineargradientBrush45,0,350,200,60);
LineargradientBrush45.Dispose();

gg.DrawImage(m_Bitmap,0,0);

tBrush.Dispose();
image.Dispose();
g.Dispose();
}

读书人网 >其他相关

热点推荐