扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这问题有点笼统,软糖来说说把:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了鹤岗免费建站欢迎大家使用!
图像处理由System.Drawing命名空间负责。
主要是Bitmap类和Graphics类。
Bitmap表示一个位图,可以是BMP,JPG,PNG等文件。
装载位图
Dim 位图 As Bitmap = Bitmap.FromFile("C:\Image1.PNG")
Graphics表示一张画纸,能够进行绘制操作。
它可以被窗体、控件、位图调用CreateGraphics()方法来创建。
然后调用Graphics.Draw开头的一系列函数来绘制图像和图形,Fill开头的填充图形。
创建画纸并绘制位图
Dim 画纸 As Graphics = Me.CreateGraphics()
画纸.DrawImage(位图, 100, 100, 256, 256)
可以将上面三行放到Form1_Load中测试,把路径改一下,
还可以把Me改为能在上面绘图的控件的名称。
更多内容请看MSDN的System.Drawing命名空间。
如满意,请采纳,谢谢。
一、分析:
1,这一类随时间而变化的曲线图,通常把横轴作为时间,把纵轴作为相应的值,在这里就是密度值。
2,点的集合就是线;一组时间、密度值,对应一个点,把点连接起来就构成了线。
二、在VB.NET中作图,需要知道并解决几个问题:
1,与VB6一样,VB.NET中默认的坐标系统,左上角为坐标原点,X轴的正向为从左向右,Y轴的正向是从上向下。
为了使得它与数学中的坐标系统相一致,可以使用VB.NET中Graphics类的两个方法;
1、TranslateTransform----平移变换
格式:Graphics.TranslateTransform(dx,dy)
其中:dx 和 dy分别是Single数据类型
2、ScaleTransform----缩放变换
格式:Graphics.ScaleTransform(sx,sy)
其中:sx 和 sy分别是Single数据类型;
例如:为了符合数学中的一般格式,可以使用下述代码:
Graphics.ScaleTransform(1, -1)
这样就把Y轴的正方向给翻过来了。
三、VB.NET中绘制图形
1,绘制圆或椭圆
'绘制图形的三步曲
'1,获得一个Graphics对象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定义一个Pen对象,用于绘制图形(轮廓线)
Dim MyPen As New Pen(Color.Black)
'3,定义一个Brush对象,用于填充图形(如果需要填充的话)
Dim MyBrush As New SolidBrush(Color.Orange)
'绘制一个实心圆,该圆在:直线x=200,y=200,x=200+100,y=200+100所划的矩形区域内
MyGraphics.FillEllipse(Brush, 200, 200, 100, 100)
'绘制一个空心圆,该圆在:直线x=200,y=200,x=200+100,y=200+100所划的矩形区域内
MyGraphics.DrawEllipse(Pen, 200, 200, 100, 100)
注意:最后两个数值如果不等,就是绘制椭圆
当圆足够小,就是点了。
2,绘制直线
'1,获得一个Graphics对象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定义一个Pen对象,用于绘制图形(轮廓线)
Dim MyPen As New Pen(Color.Black)
MyGraphics.DrawLine(MyPen, 200, 200, 100, 100)
'或者直接用
Me.CreateGraphics.DrawLine(New Pen(Color.Black), 50, 50, 200, 200)
VB点虐 与VB不同。
VB点虐 已经有专门绘图的类。
可以定义笔刷然后用Drawing类中的方法绘制。
Private Sub DrawEllipse()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawEllipse(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
Private Sub DrawRectangle()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawRectangle(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
代码重用简化了开发过程 而可视化继承之类的功能又使得代码重用更加方便 然而 代码重用并不局限于此 借助作为VB NET基础的CLR(Common Language Runtime 公共语言运行时环境) 我们可以在VB NET中继承其他VS NET语言编写的类 例如我们可以编写一个C#类 然后在VB NET类中继承该C#类
VB NET的面向对象功能已经向各个方向扩展 甚至深入到了语言本身——在VB NET中 一切都是对象 它意味着和以前的VB版本相比 我们从VB NET本身获得的支持和功能要多得多 求助于Windows API的时候将更少 例如 在以前的VB版本中 我们用LoadPicture方法装入一个图形 用Line方法(或者其他速度更快的API函数)画线 而在VB NET中 我们用System Drawing对象创建和处理图形 下面这段代码用System Drawing对象在窗体上显示一个图形
picshowpicture Image = _ system Drawing Image FromFile( _ c test bmp )
注意 VB NET的 一切都是对象 可能会使代码变得冗长 考虑下面这个语句 它在一个图形对象上面画一条黄绿色的线
objgraphics DrawLine(system Drawing _ Pens Chartreuse )
语句虽然变长 但它获得的好处是 更加灵活 更加容易使用 以前 要实现一些较为复杂的功能往往要深入研究文档 通常还要求助于API 现在 所有相关的功能集都封装到了对象之中 用对象封装功能还有额外的优点——对象以一种极为优美的形式把相关功能组织了起来 所以浏览各个对象 看看它们到底做些什么 事实上也是一件有趣的事情
Visual Basic NET的面向对象特色带来了许多切实的好处 大多数情况下 和以前的VB版本相比 VB NET面向对象的本性以及它对继承的支持使得创建某些类型的应用更加快速和方便 然而 虽然我们可以使用继承以及其他 NET的新功能 比如自由线程 但这些功能并不是一定得使用不可 正如所有其它语言的功能 我们必须使用的功能是那些对给定情形来说最具有意义的功能
lishixinzhi/Article/program/net/201311/11301
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流