C# GDI+之Graphics类 z

GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像、数学仿真等。

Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法。Graphics类封装了绘制直线、曲线、圆形、图像和文本的方法,是一切GDI+操作的基础类。在绘图之前,必须在指定的窗体上创建一个Graphics对象,才能调用Graphics类的方法画图。

一、创建Graphics类对象的的三种方法

在窗体或控件的Paint事件中创建,将其作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法。

例如,在Paint事件中创建Graphics对象:

调用窗体或控件的CreateGraphics方法可以获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面。如果在已存在的窗体或控件身上绘图,应该使用此方法

例如,在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象

由从Image继承的任何对象创建Graphics对象,调用Graphics.FromImage方法即可,该方法在需要更改已存在的图像时十分有用,例:

二、Graphics类的属性

获取或设置 Region,它限定此 Graphics 的绘图区域。

获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。

获取一个值,该值指定如何将合成图像绘制到此 Graphics。

获取或设置绘制到此 Graphics 的合成图像的呈现质量。

获取此 Graphics 的水平分辨率。

获取此 Graphics 的垂直分辨率。

获取或设置与此 Graphics 关联的插补模式。

获取一个值,该值指示此 Graphics 的剪辑区域是否为空。

获取一个值,该值指示此 Graphics 的可见剪辑区域是否为空。

获取或设置此 Graphics 的世界单位和页单位之间的比例。

获取或设置用于此 Graphics 中的页坐标的度量单位。

获取或设置一个值,该值指定在呈现此 Graphics 的过程中像素如何偏移。

为抵色处理和阴影画笔获取或设置此 Graphics 的呈现原点。

获取或设置此 Graphics 的呈现质量。

获取或设置呈现文本的灰度校正值。

获取或设置与此 Graphics 关联的文本的呈现模式。

获取或设置此 Graphics 的几何世界转换的副本。

获取此 Graphics 的可见剪辑区域的边框。

三、Graphics类的常用方法及说明

方法 描述 Clear 清除整个绘图面并以指定背景色填充 Dispose 释放由此Graphics对象使用的所有资源 DrawArc 绘制一段弧线,它表示由一对坐标、宽高指定的椭圆部分 DrawBezier 绘制由四个Point结构定义的贝塞尔样条 DrawBeziers 从Point结构的数组绘制一系列贝塞尔样条 DrawCurve 绘制经过一组指定的Point结构的基数样条 DrawEllipse 绘制一个由一对坐标、宽度和高度指定的椭圆 DrawIcon 在指定坐标处绘制由指定的Icon对象表示的图像 DrawImage 在指定的位置并且按原始大小绘制指定的Image对象 DrawLine 绘制一条连接由坐标对象指定的两个点的线条 DrawLines 绘制一列连接一组Point结构的线段 DrawPath 绘制GraphicsPath对象 DrawPie 绘制一个扇形,该扇形由一个坐标对象,宽度和高度,以及两条射线所指定的椭圆指定 DrawPolygon 绘制由一组Point结构定义的多边形 DrawRectangle 绘制由坐标对。宽度和高度指定的矩形 DrawRectangles 绘制一系列由Rectangle结构指定的矩形 DrawString 在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串 FillEllipse 填充边框所定义的椭圆内部,该边框由一对坐标、一个高度和一个宽度指定 FillPath 填充GraphicsPath对象的内部 FillPie 填充扇形内部 FillPolygon 填充多边形内部 FillRectangle 填充由一对坐标、一个宽度和一个高度指定的矩形内部 FillRectangles 填充由Rectangle结构指定的一些列矩阵的内部 FillRegion 填充Region对象的内部 FromImage 从指定的Image对象创建行的Graphics对象 Save 保存此Graphics对象的当前状态,并且GraphicsState对象标识保存的状态

Original: https://www.cnblogs.com/zeroone/p/10454530.html
Author: 武胜-阿伟
Title: C# GDI+之Graphics类 z

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554406/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 为hade增加model自动生成功能

    大家好,我是轩脉刃。 我们写业务的时候和db接触是少不了的,那么要生成model也是少不了的,如何自动生成model,想着要给hade框架增加个这样的命令。 看了下网上的几个开源项…

    技术杂谈 2023年6月1日
    0108
  • 一款开源的跨平台实时web应用框架——DotNetify

    今天给大家介绍一个开源的轻量级跨平台实时HTML+C#.NET Web应用程序开发框架——DotNetify,允许你在C#.NET后端上创建具有React、React Native…

    技术杂谈 2023年5月31日
    0132
  • 「游记」CSP-S2021爆零记

    今年的线上提交系统很坑,长时间不操作就会退出登录。还好中途学校老师有提醒先提交一部分,让我发现已退出登录,不然等最后提交就要「爆零」了(据说福建有不少选手这样),在此感谢学校老师。…

    技术杂谈 2023年7月24日
    076
  • Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法…

    技术杂谈 2023年6月1日
    0115
  • Saltstack系列4:Saltstack之Grains组件

    grains说明 grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU、内核、操作系统、虚拟化…

    技术杂谈 2023年5月31日
    096
  • Ninja Blocks物联网平台简介

    Ninja Blocks是一个物联网控制平台,其平台架构包括硬件层、处理器层、软件层以及平台层,请看下图: 最底层是硬件层,包括传感器(Sensors)和驱动器(Actuators…

    技术杂谈 2023年5月30日
    0126
  • 2022.17 技术人书单

    读书是投资自我性价比最高的方式,是开阔自己视野、提升自己认知的最快捷方式,今天是第26个世界读书日,就推荐一些个人看过或最近想看的技术书吧。 从网上找了几个书单,发现目前想说的书都…

    技术杂谈 2023年5月30日
    0123
  • 数字IC面试题

    1:建立时间与保持时间的概念?建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的…

    技术杂谈 2023年6月1日
    0119
  • 假设检验

    举个栗子。 我说我射击特别厉害,平均能打到8环,那么如何验证我是不是在吹牛逼呢,那就让我做几次射击看看我水平到底怎么样。 首先你选择相信我,假设我没吹牛,我的成绩在8环附近(这就是…

    技术杂谈 2023年5月31日
    086
  • CentOS7 firewall开启,开放端口操作

    防火墙开机启动 systemctl enable firewalld.service 查看防火墙状态 firewall-cmd –state 开启防火墙 systemctl st…

    技术杂谈 2023年6月1日
    0118
  • 力扣刷题之路-括号匹配问题

    括号匹配问题在力扣中有好几道,简单的括号匹配问题即一个左括号需要对应一个右括号,判断是否匹配或者需要加入几个左括号或右括号,此时的问题比较简单,当字符串中的字符只有一种类型的括号时…

    技术杂谈 2023年7月11日
    0121
  • SpringCloud学习笔记(整理)

    版本选择 springcloud 组件 构建微服务 Eureka 服务注册与发现【停更】 配置eureka server 配置client微服务注册到server 使用@LoadB…

    技术杂谈 2023年7月11日
    079
  • UESTC 1034 AC Milan VS Juventus 分情况讨论

    Kennethsnow and Hlwt both love football. One day, Kennethsnow wants to review the match in…

    技术杂谈 2023年5月31日
    084
  • 特征脸(Eigenface)理论基础-PCA(主成分分析法)

    在之前的博客 人脸识别经典算法一:特征脸方法(Eigenface) 里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在做补充。请将这两篇博文结合起来阅读。以…

    技术杂谈 2023年5月31日
    0107
  • OpenMP入门

    OpenMP 入门 简介 OpenMP 一个非常易用的共享内存的并行编程框架,它提供了一些非常简单易用的API,让编程人员从复杂的并发编程当中释放出来,专注于具体功能的实现。ope…

    技术杂谈 2023年7月24日
    097
  • 使用w32tm / stripchart来判断两个Windows主机之间的时间差异是否可行?发现两个主机时间差异的更好方法是什么?

    第二个问题的答案是”是的,有更好的方法来衡量两个主机之间的 时间差异.微软说得对.他们指向,其中列出了一大堆其他软件(和硬件).可能比w32tm.exe好.我相信很多都…

    技术杂谈 2023年5月31日
    0128
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球