GDI+绘图基础
GDI+
指的是.NET Framwork中提供的二维图像、图像处理等功能,是构成Windows操作系统的一个子系统,它提供了图形图像操作的应用程序编程接口(API)。
- 使用GDI+可以用相同的方式在屏幕或打印机上显示信息,而无须考虑特定显示设备的细节。
- GDI+类提供程序员用以绘制的方法,这些方法随后会调用特定设备的驱动程序。
- GDI+将应用程序与图形硬件分隔,使程序员能够创建与设备无关的应用程序。
- GDI+主要用于在窗体上绘制各种图像图像,可以用于绘制各种数据图形、数学仿真等。
- GDI+可以在窗体程序中产生很多自定义的图形,便与开发人员展示各种图形化的数据。
创建Graphics对象(也称为画布对象)
1. 在Paint事件中创建Graphics对象。
Private Void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g=e.Graphics; }
2. 在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象。
private Void Form1_Load(object sender, EventArgs e)
{
Graphics g;
g=this.CreateGraphics();
}
3. 在窗体的Load事件中,通过FormImage方法创建Graphics对象。
private void Form1_Load(object sender, EventArgs e)
{
Bitmap mbit=new bitmap (@"C:\ls.bmp");
Graphics g=Graphics.FromImage(mbit);
}
另,Graphics类和Bitmap类的区别:
不可能直接在 Bitmap 对象上画图的,只能先取得这个 Bitmap 的 Graphics 对象,然后在这个 Graphics 对象上操作。
Bitmap 封装 GDI+ 位图(注意:位图),是用于处理由像素数据定义的图像的对象。
Graphics 封装一个 GDI+ 绘图(注意:绘图),图面提供将对象绘制到显示设备的方法。
通俗点儿说,前者是绘画作品,后者才是真正绘画时用到的东西(比如刷子、颜料等等),两者完全不同。
GDI+绘图基础的更多相关文章
- GDI+(一):GDI+ 绘图基础
一.GDI+绘图基础 编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数. ...
- MFC GDI绘图基础
一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上. 在Wind ...
- Windows GDI绘图基础知识
一.Windows可以画直线.椭圆线(椭圆圆周上的曲线)和贝塞尔曲线.////////////7 个画线函式是:(1)画直线LineTo BOOL LineTo(HDC hdc,int nXEn ...
- windows游戏编程 绘图基础
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22451353 作者:jadeshu 邮箱: jades ...
- C#GDI+编程基础(一:Graphics画布类)
GDI+存在的意义:将变成与具体硬件实现细节分开. GDI+步骤:获取画布,绘制图像.处理图像 命名空间: using System.Drawing;//提供对GDI+基本图形功能的访问 using ...
- Direct3D11学习:(七)绘图基础——彩色立方体的绘制
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 在前面的几篇文章中,我们详细介绍了Direct3D渲染所需要的数学基础和渲染管道理论知识.从这篇文章开始,我们就 ...
- C#-gdi绘图,双缓冲绘图,Paint事件的触发
一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1 绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...
- GDI+ 绘图闪烁解决方法
闲着没事,准备做一个类似于TeeChart的自定义控件,结果第一步的绘图就把我给难倒了,虽然早就知道GDI绘图的闪烁问题很坑,但是却没有想到如此之坑,折腾了两天,才找到解决方法. 首先在窗体加载的时候 ...
- VS2013中使用GDI+绘图
VC范例,400多个例子源代码下载 http://download.csdn.net/detail/bigtree_mfc/7727977 VS2013中使用GDI+绘图和VC6.0不同,在VC6.0 ...
随机推荐
- Mxgraph使用总结二
1 新建画板,画板相关操作 var container = document.getElementById("main"); //设置背景样式 container.style.ba ...
- JDBC小常识
1 JDBC连接数据库6步 Load the JDBC Driver Establish the Database Connection Create a Statement Object Execu ...
- bae3.0第一步 添加框架支持
1.克隆bae上应用代码: 先在本地linux机器上创建文件夹bae并进入, 再执行git clone https://git.duapp.com/appidd01iud80bg 结果会在bae文件夹 ...
- 蓝桥杯 历届试题 PREV-33 兰顿蚂蚁
历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中 ...
- hihoCoder#1175拓扑排序应用
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho所在学校的校园网被黑客入侵并投放了病毒.这事在校内BBS上立刻引起了大家的讨论,当然小Hi和小Ho也参与到了 ...
- CountDownLatch的介绍和使用
1.类介绍 java.util.concurrent 类 CountDownLatch java.lang.Object java.util.concurrent.CountDownLatch 一个同 ...
- windows下python访问ipv6报错
错误 Traceback (most recent call last): File , in <module> app.run() File , in run return wsgi.r ...
- “百度杯”CTF比赛 九月场
Test: 题目提示查资料 打开地址,是一个海洋cms 海洋cms有个前台getshell的漏洞 在地址后加上/search.php?searchtype=5&tid=&area=ev ...
- scrapy-redis源码抛析
#scrapy-redis--->queue.py-->class FifoQueue 队列 LifoQueue(lastinfirstout栈) #self.server父类Base中链 ...
- ffmpeg添加水印的方法举例 (砖)
网上大部分关于ffmpeg加视频水印的方法还是使用vhook,在现在的ffmpeg中已经不推荐使用,但是也能编译,也能使用,至于效果,一会再说.现在的ffmpeg推荐使用的是libavfilter,但 ...