GDI+的应用
在VS中创建窗体
(1)CDI+清除绘画面
在窗体中写入代码:
protected override void OnPaint(PaintEventArgs e){
Graphics g=e.Graphics;
g.Clear(Color.Pink);
g.Dispose();
}
(2)CGD+绘制多边形
protected override void OnPaint(PaintEventArgs e){
Graphics g=e.Graphics;
Point[] points=new Point[]{
new Point(200,200),
new Point(230,230),
new Point(260,300),
new Point(300,350)
};
g.DrawPolygon(new Pen(Color.Red),point);
g.Dispose();
}
(3)GDI+填充颜色
protected override void OnPaint(PaintEventArgs e){
//简单填充颜色
Graphics g=e.Graphics;
g.FillRectangle(Brushes.Red,new Rectangle(20,20,100,200));
//渐变颜色填充
Brush brush=new LinearGradientBrush(new Point(10,10),new Point(10,10),Color.Yellow,Color.White);
g.FillRectangle(brush,new Rectangle(20,20,100,170));
g.Dispose();
}
(4)GDI+绘画路径
protected override void OnPaint(PaintEventArgs e){
Graphics g = e.Graphics;
Point[] points = new Point[]{
new Point(100,100),
new Point(100,150),
new Point(150,200),
new Point(50,200),
};
GraphicsPath path = new GraphicsPath(
points,new byte[]{
(byte)PathPointType.Start,
(byte)PathPointType.Line,
(byte)PathPointType.Line,
(byte)PathPointType.Line
);
}
g.DrawPath(new Pen(Color.Red),path);
g.Dispose();
}
(4)GDI+绘制字符串
protected override void OnPaint(PaintEventArgs e){
Graphics g = e.Graphics;
//普通绘制字符串
Font font1=new System.Drawing.Font("宋体",30);
g.DrawingString("ABCD",font1,Brushes.Red,new PointF(30,30));
//带格式的字符串
Font font2 = new System.Drawing.Font("宋体", 30);
RectangleF rect = new RectangleF(100,100,100,200);
g.DrawRectangle(new Pen(Color.Red),new Rectangle(100,100,100,200));
//字符串格式对象
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;//在矩形中居中
sf.LineAlignment = StringAlignment.Center;
g.DrawString("abcd",font2,Brushes.Red,rect,sf);
g.Dispose();
}
(5)GDI+纹理绘画图片
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Image image = Image.FromFile("图片路径");
//纹理画笔
Brush brush = new TextureBrush(image);//刷出来的位置都有image的存在
g.DrawRectangle(new Pen(Color.Pink),40,40,300,300);
g.FillRectangle(brush,new Rectangle(40,40,300,300));
g.Dispose();
}
GDI+的应用的更多相关文章
- 超全面的.NET GDI+图形图像编程教程
本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ (*^_^*) 本人也为了学习深刻,另一方面也是为了 ...
- (转载)GDI+双缓冲
双缓冲在GDI+里可以有效的提高描画效率.改善显示的质量. 下面的代码是一个最简单的双缓冲的模板.可以根据需要,做简单的修改即可. Bitmap CacheImage( [Width], [Heigh ...
- (转载)解决GDI闪烁
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁. 先来谈谈闪烁产生的原因 原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的 ...
- 通过GDI+绘制 验证码
只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 using System; using System.Collections.Generic; using Syste ...
- 【VC++技术杂谈007】使用GDI+进行图片格式转换
本文主要介绍如何使用GDI+对图片进行格式转换,可以转换的图片格式为bmp.jpg.png. 1.加载GDI+库 GDI+是GDI图形库的一个增强版本,提供了一系列Visual C++ API.为了使 ...
- C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框
最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大 ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- GDI+ 笔记
1.GDI+模板 #include<windows.h> #include<GdiPlus.h> #include <time.h> #include <ma ...
- C# GDI+发生一般性错误(A generic error occurred in GDI+))
解决思路: 1. 因为 .net GDI+ 是对底层 的封装. 所以可以尝试用 Marshal.GetLastWin32Error();函数获得底层错误代码. try{ image.Save(file ...
- GDI与GDI+ 贴图性能对比
在做绘图相关工作,由于对显示绘制结果实时性有要求,筛选了GDI , 与GDI+ 贴图性能. 这里假设在内存中已绘制完成一张图片,现需求显示在控件上,同时,总是更新全部区域. GDI+ 实现 priva ...
随机推荐
- 8.1.1 Service的生命周期
2010-06-21 16:57 李宁 中国水利水电出版社 字号:T | T <Android/OPhone开发完全讲义>第8章Android服务,本章主要介绍了Android系统 中的服 ...
- atitit.项目设计模式---ioc attilax总结v4 q11
atitit.项目设计模式---ioc attilax总结v4 q11 1. ioc的原理1 1.1. .IOC的之前1 1.2. ioc后的实现2 1.3. ioc的演化2 1.4. 依赖注入和控制 ...
- Atitit.java 虚拟机的构成 与指令分类 与 指令集合 以及字节码查看工具javjap
Atitit.java 虚拟机的构成 与指令分类 与 指令集合 以及字节码查看工具javjap 1.1. 虚拟机的构成 java虚拟机--处理器.堆栈.寄存器.指令系统. 1 1.2. 虚拟机执行过程 ...
- UVA 11885 - Number of Battlefields(斐波那契)
11885 - Number of Battlefields 题意:给周长.求能围成的战场数目.不包含矩形. 思路:详细的递推没递推出来,可是看了网上一个规律,假设包含矩形的答案应该是斐波那契数列(可 ...
- error: memcached support requires ZLIB. Use --with-zlib-dir=<DIR> to specify the prefix where ZLIB
yum install zlib-devel
- 盘点20款主流应用FPS,最Skr帧率测试方法都在这里!
无论是手机端还是PC端,画面的流畅度一直被用户视为衡量应用视觉体验的重要标准.用户往往通过主观感觉把视觉体验分为两种状态: 流畅视觉:行云流水,一气呵成: 非流畅视觉:“卡顿”.“抖动”.“迟钝 ...
- UVA1658 Admiral 拆点法解决结点容量(路径不能有公共点,容量为1的时候) 最小费用最大流
/** 题目:UVA1658 Admiral 链接:https://vjudge.net/problem/UVA-1658 题意:lrj入门经典P375 求从s到t的两条不相交(除了s和t外,没有公共 ...
- Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。
/** 题目:Help Tomisu UVA - 11440 链接:https://vjudge.net/problem/UVA-11440 题意:给定正整数N和M, 统计2和N!之间有多少个整数x满 ...
- 配置LANMP环境(1)-- 安装虚拟机VMware与安装CentOS7.2系统
一.安装虚拟机VMware 1.下载VMware傻瓜式安装 2.配置 二.安装CentOS7.2系统 镜像下载链接 1.放入ios镜像文件之后,启动虚拟机,选择7.0+的 ...
- iptables进阶
ptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,outp ...