c#窗体绘图
绘图原理
1.1 picturBox简要介绍
在理解绘图原理之前,我们首先要明白绘图使用的基本控件为picturebox,所以首先我们先来介绍一下这个常见的控件。
首先我们介绍一下该控件的重要属性,这些属性在我们绘图的过程中极为重要,如下表已经将重要属性列出。
属性 | 介绍 |
---|---|
Name | pictureBox的对象名 |
Backcolor | pictureBox的背景颜色 |
Dock | pictureBox的停靠方式,分为居中停靠,靠左停靠,靠右停靠,置顶停靠,置底停靠,随机停靠6种停靠方式 |
Enable | pictureBox的激活状态,若为Ture则可以使用,若为False则为无法使用状态 |
Sizemode | pictureBox的大小模式,分为以下5种:1.正常显示模式 2.拉伸收缩模式 3.自动调节模式 4.居中放置模式 5.固定纵横比模式 |
接着我们介绍一下在pictureBox中坐标轴是怎么定义的。
如图所示,中间蓝色区域即为一个·pictureBox,系统默认的坐标原点在左上角,以向右为x轴的正方向,以向下为y轴的正方向,注意到x轴方向与控件的Width方向相对应,y轴方向与控件的Height方向相对应。
提示:以下是本篇文章正文内容,下面案例可供参考
1.2 绘图本质
我们可以注意到其实pictureBox的显示内容如何是由它的image属性来决定的,在窗体中可以直接选择图像资源导入控件中,本质上是将jpg,png等格式的图片转化为了Bitmap形式的图像,然后将pictureBox的Image属性值赋值为该bitmap对象。
image=imread(图像地址);
bitmap=(Bitmap)image;
pictureBox.image=bitmap;
!!!上面的代码只是伪代码
那么现在的问题是Bitmap类型的对象怎么在程序中创建?实际上我们只需要给定Bitmap的长和宽就能创建一个Bitmap对象,这个长宽我们设置为pictureBox的长和宽。
Bitmap bp = new Bitmap(pictureBox2.Width,pictureBox2.Height);
pictureBox2.DrawToBitmap(bp, new Rectangle(0, 0, bp.Width, bp.Height));
但是我们是直接在pictureBox上绘图吗?其实并不是,本质上需要再pictureBox上创建一个画布Graphics对象进行绘制,并且画图的一切操作其实都是在画布上进行的,而最终的pictureBox的image属性本质上只是进行了一份拷贝工作
,那么怎样才能得到画布并且在上面进行工作呢,请接着看我的第二篇文章!