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 ...
随机推荐
- 基于Opencv自带BP网络的车标简易识别
代码地址如下:http://www.demodashi.com/demo/12966.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1.准备工作 1.1 训练集和测 ...
- SpringBoot学习小结
基于Spring,简化Spring应用开发的框架,整个Spring技术栈的大整合,J2EE开发的一站式解决方案 优点: 快速创建独立运行的Spring项目以及集成主流框架 使用嵌入式的Servlet容 ...
- Spring事务的传播行为 @Transactional
Spring事务的传播行为http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个se ...
- Pycharm 安装scrapy
因为scrapy需要依赖第三方的包,所以直接使用Pycharm安装Scrapy包无法安装成功.网上已经有很多使用cmd安装scrapy的优秀教程,此处不再介绍. 基于下图所示的结构之下向上即可完成sc ...
- AngularJs学习笔记(2)——ng-include
编写html文档的时候,为了实现代码模块化,增加复杂页面的代码可读性和可维护性,我们常常会想到将代码分散写入不同的HTML文件 angularJS里面的ng-include指令结合ng-control ...
- tcpdump抓包(转)
Linux 环境下,通常通过 tcpdump 来进行抓包和分析.它是几乎所有 Linux 发行版本预装的数据包抓取和分析工具. tcpdump 工具的获取和安装可以参阅相应操作系统的官方文档,本文不再 ...
- DM36x IPNC OSD显示中文 --- 实战篇
通过数据准备篇,将数据准备好后,其实剩下的工作已经很简单了,通过以下几个步骤即可把一个中文显示在OSD画面上:1. 使用SWOSD_setBmpchangeWinXYPrm函数设置好OSD显示坐标位置 ...
- Linux学习之tune2fs
这是Linux系统用于文件系统自检的工具. 常用选项 -l 查看文件系统信息 -c max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次 ...
- MySQL和hive对比表结构脚本
#!/bin/bash source /etc/profile runlog='/tmp/zewei/check_schema_log' hive_database_schema=/tmp/hive_ ...
- html 标签 图片
<img src="e:/image/a.png"/> 在html中,图片是一个字符. <img src=" e:/image/a.png" ...