C#利用GDI绘制常见图形和文字
作者:Kimisme 发布时间:2023-04-09 20:44:40
标签:C#,GDI
废话不多说,我们先来认识一下这个GDI+,看看它到底长什么样。
GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等.
大概了解了什么是GDI+后,我们直接用几个示例,来向大家展示它能做什么吧。
1.画一条直线
private void btnDrawLine_Click(object sender, EventArgs e)
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.Red);
//直线的两个坐标
Point pointStart = new Point(10, 10);
Point pointEnd = new Point(50, 50);
//开始画
g.DrawLine(pen, pointStart, pointEnd);
}
2.画一个矩形
private void btnDrawRectangle_Click(object sender, EventArgs e)
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.DeepSkyBlue);
//确定矩形的起点、长和高
g.DrawRectangle(pen, 50, 50, 60, 30);
}
3.画一个字符串
private void btnDrawString_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
Font font = new Font("华为宋体", 12);
//Point一样,只是值是浮点类型
PointF point = new PointF(50, 50);
g.DrawString("我是Kimisme", font, Brushes.Coral, point);
}
4.画一个扇形
private void btnDrawSector_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
g.DrawPie(new Pen(Brushes.Green),
new Rectangle(new Point(100, 70),
new Size(50, 50)), 60, 90);
}


猜你喜欢
- 1、原理事务的概念想必大家都很清楚,其ACID特性在开发过程中占有重要的地位。同时在并发过程中会出现一些一致性问题,为了解决一致性问题,也出
- 一、效果图:二、导入 jar 包1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包第一种:maven<!
- Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。本篇不涉及其原理,只用代码构建项目简单试用一下其回滚
- 年纪大了,以前做过的东西过阵子还是会忘,今天使用jenkins持续集成工具时用到了eclipse上传新maven工程至svn,上传完毕后改了
- springboot环境切换失效概述最近在使用-Dspring.profiles.active=te 来切换spring-boot的环境时,
- 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的
- 贪婪量词:先看整个字符串是不是一个匹配。如果没有发现匹配,它去掉最后字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,那么 
- 本文想阐述一下当你开发Android应用并采用RxJava作为你的架构,尤其是有关网络请求时最常见的三种场景。我使用Retrofit来作为网
- 本文实例为大家分享了Unity使用射线实现贴花系统,供大家参考,具体内容如下老规矩,直接上代码:using System.Collectio
- 做直播,音视频通讯。经常需要通过rtp协议封装音视频数据来发送。网上找到的基本都是c或c++版本的,没有JAVA版本的。就算千辛万苦找到一篇
- 一、常见的锁策略1.1 乐观锁乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正 式对数据是否产生并
- 1.让方法返回多个参数1.1在方法体外定义变量保存结果using System; using System.Collections
- C++String类型的逆序这里使用反向迭代器实现#include<iostream> #include <string&
- 一、String类概述String类代表字符串,java程序中的所有字符串文字(例如"abc")都被实现为此类的实例。也
- 这篇文章主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 导入依赖(pom.xml) <!--整合Shiro安全框架--> <dependency>
- 判断一个数是不是回文数示例,回文数就是原数与其倒置后的数相等,如:123321,到之后仍为123321,即为回文数题目:一个5位数,判断它是
- 目录1. SpringCloud特点2. 分布式系统的三个指标CAP3. Eureka4. SpringCloud Demo4.1 regi
- 前言很长一段时间没写博客了,再不写点东西真说不过去,把工作上的一些有价值的东西整理出来分享,在当下还有点时效性,不然迟早会烂在肚子里的。还记
- 本文为大家讲解了Struts2框架的入门知识,供大家参考,具体内容如下1、Struts2框架介绍Struts2框架是MVC流程框架,适合分层