c#Gdi画图的两种方式

用Graphics绘图的两种方法


在学习C#画图的时候非常的蛋疼。其中的一条原因是之前没有搞过, 其中之二是办公的环境有点差。这就是我找的2种学习非常蛋疼的原因。虽然是这样但是学还是要学的。

本篇文章都是在xxx_paint(object sender, PaintEventArg e )  重绘函数中运作的。

绘图的两种自定义 Graphics对象的方法

1: 是用重绘函数自带的参数来进行画图

e.graphics.DrawLine( new  Pen(Color.Red,), new Point(0,0), new Point(100,100));

2:先创建画布, 然后用e.graphics.DrawImage( )的方式,

Bitmap bmp = new Bitmap(this.panel.Width, this.panel.Height);  //创建画布
Graphics graphics = Graphics.FromImage(bmp);//创建画图对象
graphics.DrawLine( new  Pen(Color.Red,), new Point(0,0), new Point(100,100));//开始画图
e.graphics.DrawImage(bmp, this.panel.Location); //最重要的一步,要不然效果不会出来
总结:

绘制到Bitmap对象上的优点

1>性能

 可以提前绘制图像,再在需要它时在Paint事件中绘制图像。这样,就只需绘制一次图形,而不是在每次接收到Paint事件时都绘制他们。如果绘图过程比较费时时,这样做肯定会提高性能。

2>动态生成图像

有时需要在网页中包含一个动态生成的图形。为此,可以在Web服务器上绘制图像,然后在网页上包含一个对该动态生成图像的引用。

3>准备复杂的3D图形

如果图形有多个层,即首先需要绘制背景,然后绘制中间图像前景,在屏幕之外绘制图像就允许先完全准备好图像,再把他们显示到屏幕上。这将防止因在屏幕上绘制多层图像而导致的难看的效果。而且,一些图像处理效果例如模糊和锐化,只能在显示图像之前通过直接处理图像来获得。提前绘制图像,就可以使用这些处理功能。



备注:
其中的panel 是一个控件, 名字就是  Panel,    在属性中 (layout)DOCK中是  Fill.
这就是我总结的2中画图的方式,如果有其它的大家可以留言, 方便我去整理。 每天进步一点点。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码i小学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值