GDI+学习笔记1- 概述

2023-11-04

(一) 图形概述(Windows 窗体)

GDI+ 是构成 Microsoft Windows 操作系统子系统的应用程序编程接口 (API)。GDI+ 负责在屏幕和打印机上显示信息。 顾名思义,GDI+ 是 GDI 的后续,后者是包含在 Windows 早期版本中的图形设备接口。 GDI+ API 通过一组部署为托管代码的类公开。 这组类被称为 GDI+ 的托管类接口。 以下命名空间构成托管类接口:

System.Drawing:提供对 GDI+ 基本图形功能。
System.Drawing.Drawing2D:提供高级的二维和矢量图形功能。
System.Drawing.Imaging:提供高级 GDI+ 图像处理功能。
System.Drawing.Text:提供高级 GDI+ 的版式功能。
System.Drawing.Printing:提供与打印相关的服务。

TextRenderer:提供 GDI 文本绘制和测量功能。

使用图形设备接口(如 GDI+), 可以在屏幕或打印机上显示信息,而无需顾虑特定显示设备的详细信息。 程序员调用由 GDI+ 类提供的方法。这些方法,反过来,对特定的设备驱动程序进行适当的调用。 GDI+ 使应用程序与图形硬件隔离。正是这种隔离使程序员能够创建独立于设备的应用程序。

(二) 图形服务的三个类别

Windows 窗体中提供的图形分为下面的三大类:
1. 二维 (2-D) 矢量图形
2. 图像处理
3. 版式


1. 二维矢量图形
二维矢量图形为基元(例如,直线、曲线和图形);它们由坐标系统上的多组点指定。 例如,直线可通过它的两个端点来指定,而矩形可通过确定其左上角位置的点并给出其宽度和高度的一对数字来指定。 简单路径可由通过直线连接的点的数组来指定。 贝塞尔样条曲线是由四个控制点指定的复杂曲线。

GDI+ 提供了用于存储基元自身信息的类和结构、用于存储基元绘制方式信息的类以及用于实际绘制的类。 例如,Rectangle 结构存储矩形的位置和尺寸;Pen 类存储有关线条颜色、线条粗细和线型的信息;而 Graphics 类具有用于绘制直线、矩形、路径和其他图形的方法。 还有几种 Brush 类,它们存储有关如何使用颜色或图案来填充封闭图形和路径的信息。

您可以在元文件中记录表示图形命令序列的矢量图像。 GDI+ 提供了用于记录、显示和保存元文件的 Metafile 类。 使用 MetafileHeader 和 MetaHeader 类可以检查存储在元文件头中的数据。

2. 图像处理
某些种类的图片很难或者根本无法用矢量图形技术来显示。 例如,工具栏按钮上的图片和显示为图标的图片就难以指定为直线和曲线的集合。 拥挤的棒球运动场的高分辨率数字照片会更难以使用矢量技术来制作。 此类型的图像将以位图的形式存储,位图是由表示屏幕上各个点的颜色的数字阵列。 GDI+ 提供了用于显示、操作和保存位图的 Bitmap 类。

3. 版式
版式是指以各种字体、大小和样式显示文本。 GDI+ 提供了对这种复杂任务的广泛支持。 GDI+ 中的一个新功能是子像素抗锯齿,它可以使文本在 LCD 屏幕上呈现时显得更平滑。
另外,Windows 窗体还提供了在其 TextRenderer 类中使用 GDI 功能绘制文本的选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GDI+学习笔记1- 概述 的相关文章

  • 计算机图形及分类的相关知识,“计算机图形学”课程教与学

    摘 要 xff1a 本文针对作者几年来在 计算机图形学 课程教学过程中实际遇到的问题 xff0c 从教师如何教授知识和学生如何学习知识两个方面进行深入分析和研究 xff0c 提出了改进课堂教学 实验教学以及学生学习的方法 教学实践表明 xf
  • MFC计算机图形学(3)

    之前我们已经可以画出直线和曲线了 但是算法虽容易理解 xff0c 但是复杂度高 xff0c 今天就介绍比较流行的DDA画线法 xff0c 还有 xff0c 对鼠标进行事件有所响应 xff0c 即 xff0c 在画板上 xff0c 鼠标左键单
  • 计算机图形学(Computer Graphics)有哪些SCI期刊推荐? - 易智编译EaseEditing

    以下是计算机图形学领域的几个重要SCI期刊 xff1a ACM Transactions on Graphics TOG xff1a 是计算机图形学领域最重要的SCI期刊之一 xff0c 由ACM xff08 Association for
  • OpenGL入门教程之 纹理

    引言 我们已经了解到 我们可以为每个顶点添加颜色来增加图形的细节 从而创建出有趣的图像 但是 如果想让图形看起来更真实 我们就必须有足够多的顶点 从而指定足够多的颜色 这将会产生很多额外开销 因为每个模型都会需求更多的顶点 每个顶点又需求一
  • 左手坐标系与右手坐标系(转)

    转自 http www cnblogs com mythou p 3327046 html 1 空间直角坐标系 下面摘录一段百科的解析 这些都是数学基础 过空间定点O作三条互相垂直的数轴 它们都以O为原点 具有相同的单位长度 这三条数轴分别
  • unity三种图片格式

    本文转载自 http blog csdn net caption deng article details 52366907 ARGB 是一种色彩模式 也就是RGB色彩模式附加上Alpha 透明度 通道 常见于32位位图的存储结构 RGB
  • OpenGL入门教程

    OpenGL入门教程 参考 OpenGL入门教程 Opengl 图形学final project作业记录 文章目录 OpenGL入门教程 一 概述 1 OpenGL 2 OpenGL ES与WebGL 3 OpenGL发展史 4 OpenG
  • C++ 实现两线段是否相交、相交情况、若相交求出交点坐标

    前段时间做计算机图形学的东西 现在闲下来 对代码稍作整理 都是些实用的函数 判断是否相交 X1 Y1 X2 Y2 前线 X3 Y3 X4 Y4 后线 x y 交点坐标 相交在前线上return 1 后线return 2 交于外面return
  • (三) 计算机图形学 之 Shader 定义 (顶点 着色器)

    shader 决定材质 跟灯光的作用 shader 属性定义的通用格式 Properties Property Property 相当于一个类的公共变量 Properties 定义一个Int name display name Int 1
  • leaflet常用插件库

    1 常用地图切换加载 osm google baidu gaode tianditu etc https github com htoooth Leaflet ChineseTmsProviders 2 切片地图加载 wmts 支持矢量切片
  • 【OpenGL】机器人手臂的实现

    一 基本功能 实现了机器人的一只手臂 由上臂 下臂 五根手指共同组成 通过A S D F G键向上旋转 通过a s d f g键向下旋转 通过方向键left和right转向 通过up和down实现放缩 效果图如下 二 实现过程 1 实现手臂
  • Modern OpenGL---09 纹理(纹理单元可贴多个纹理)

    对之前画的矩形基础上贴上纹理 在片段着色器中 声明一个采样器 表示纹理位置 每个纹理位置叫做纹理单元 比如 0 1等 当只有一个纹理事时 纹理单元默认为0 当有一个以上的纹理时 则需要通过uniform从外部设置每个纹理单元的值 需要注意的
  • 改进的z-buffer算法实现 c

    一 实验目的 改进的z buffer算法实现 二 实验工具 VC6 0 三 实验步骤 算法思想 先将Z缓冲器中各单元的初始值置为最小值 当要改变某个象素的颜色值时 首先检查当前多边形的深度值是否大于该象素原来的深度值 保存在该象素所对应的Z
  • 中点分割裁剪算法

    中点分割裁剪算法 python 实验目的 采用中点分割方法找到距离线段顶点最近的可见点 找到后 进行绘制 即可实现直线段在裁剪窗口的裁剪显示 算法思想 设要裁剪的线段是P1P2 中点分割算法可分成两个平行的过程进行 即从P1点出发找出离P1
  • 判断一个点是否在圆内(三点确定一个圆)

    三角形的外接圆圆心是任意两边的垂直平分线的交点 三角形外接圆圆心叫外心
  • 计算机图形学----光线追踪----路径追踪

    基础知识预备 概率论 概率 期望 概率 值 PDF 概率密度函数 概率密度函数 p x 在数学中 连续型随机变量的概率密度函数 在不至于混淆时可以简称为密度函数 是一个描述这个随机变量的输出值 在某个确定的取值点附近的可能性的函数 也就是结
  • VS2019下的GAMES101作业环境配置

    序 很久很久以前 好像看过这个 GAMES101 现代计算机图形学入门 闫令琪 哔哩哔哩 bilibili 里面好像还有一个实验 当时只是看了看视频里的热闹 并没有写实验 现在想想 还是写一写的好 万一以后用上了呢 虽然是个24K纯小白 估
  • 全局光照算法:reflective shadow maps

    1 技术理解 RSM的全称是reflective shadow maps 受到Instant Radiosity这个离线技术的启发 其思想和ShadowMap的思想近似 在正式介绍和了解这个技术之前 我需要确定RSM用处何在 我想 RTR4
  • C#软件开发实例.私人订制自己的屏幕截图工具(一)功能概览

    本实例全部文章目录 一 功能概览 二 创建项目 注册热键 显示截图主窗口 三 托盘图标及菜单的实现 四 基本截图功能实现 五 针对拖拽时闪烁卡顿现象的优化 六 添加配置管理功能 七 添加放大镜的功能 八 添加键盘操作截图的功能 九 使用自定
  • GDI+学习笔记7-统计报表的图形绘制

    图形编程 SetPixel 设置指定点的颜色 COLORREF SetPixel HDC hDC int X int Y COLORREF crColor hDC 绘制点的DC X Y 坐标位置 crColor 设置的颜色 返回值为设置颜色

随机推荐

  • 小美的数组操作2---牛客周赛 Round 11

    注意给a 0 赋一个最小值 include
  • 1004 成绩排名 (20 分)

    1004 成绩排名 20 分 读入 n gt 0 名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含 1 个测试用例 格式为 第 1 行 正整数 n 第 2 行 第 1 个学生的姓名 学号 成绩
  • WEB应用防火墙安全技术要求与测试评价方法

    信息安全技术 WEB应用防火墙安全技术要求与测试评价方法 范围 本标准规定了WEB应用防火墙的安全功能要求 自身安全保护要求 性能要求和安全保证要求 并提供了相应的测试评价方法 本标准适用于WEB应用防火墙的设计 生产 检测及采购 规范性引
  • Android自定义View-Path的详细介绍

    一 构造方法 1 Path path new Path 空的构造方法 2 Path path new Path Path src 创建一个新的路径 并从src路径获取内容赋值给新的路径 二 Path常用的一些方法 分类 Path方法 备注
  • Verilog学习之位拆分与运算设计

    文章目录 前言 一 题目描述 二 实现思路 1 题意分析 2 状态分析 三 代码展示 总结 前言 今天我们做的是第五道题 位拆分与运算 这道题比较简单 我们只需要用到状态机的思想和 运算以及数据锁存的问题 接下来就让我们看看如何写这道题 位
  • Kibana server is not ready yet

    Kibana server is not ready yet 这个错误通常是由于Kibana服务无法连接到Elasticsearch引起的 这可能是由于以下原因之一 1 Elasticsearch没有启动 请确保Elasticsearch正
  • vivado时序分析之set_input_delay(三)

    本篇用vivado timing constraints wizard来进行set input delay的约束 set input delay界面如图一所示 包括interface clock synchronous alignment
  • Python第三方库在命令行使用pip安装完成之后只能使用idle,而不能pycharm的解决方法

    先使用pip install requests 或者其他模块也可以 然后如图 就可以看到这些模块被安装的位置 看到安装的一些模块都在这里 直接把site packages整个文件夹Ctrl C一下 然后找到Pycharm的项目文件夹 就是你
  • uniapp各个页面监听

    当前页面在退出时 uni emit zxpg zxpg res tips uni navigateBack 返回上一个页面 在上一个页面的onShow uni on zxpg data gt console log 接收事件test成功 d
  • Spring Boot 创建RESTful Web Service

    1 介绍 本篇将使用Spring Boot创建一个简单restful风格web服务 接受HTTP GET请求 http localhost 8080 greeting 响应体 respond 为一个JSON字符串 id 1 content
  • 解决网页不能复制

    按f12 console点圆圈斜杠那个图标 输入 document body contentEditable true
  • Spring框架概述 --- AOP, 拦截器, 过滤器

    Spring框架概述 AOP 拦截器 过滤器 AOP概念 过滤器 Filter 拦截器 Interceptor Spring AOP AOP Example Log Aspect 执行顺序是 过滤器 gt 拦截器 gt AOP AOP概念
  • NLP学习(四)规则分词-正向、逆向和双向最大匹配算法的中文分词-python3实现

    规则分词 规则分词是一种机械分词方法 主要通过维护词典 在切分语句时将语句的每个字符串和词表中的词逐一匹配找到则切分 找不到则不切分 具体包括正向最大匹配法 逆向最大匹配法和双向最大匹配法 正向最大匹配 算法描述 从左向右取待切分汉语句的m
  • 小程序包体积压缩优化,下降500k起步

    由于公司小程序包体积过大 已经达到1 9m了 微信定义小程序单个代码包 主包 分包 上限为2m 所以小程序该减肥了 如果你按我的步骤都做了 体积没有减少 ok 来打我 文章目录 第一步 最直接的方式 图片优化 第二步 优化体积主要方法 分包
  • VMware虚拟机安装Ubuntu教程

    目录 一 软件准备 二 安装VMware 三 安装Ubuntu系统 3 1 创建新的虚拟机 3 2 客户机操作系统安装 3 3 客户机操作系统选择 3 4 命名虚拟机和存储位置更改 3 5 处理器配置 3 6 虚拟机内存配置 3 7 网络和
  • React 状态提升 温度转换项目

    使用 create react app 快速构建 React 开发环境 create react app 是来自于 Facebook 通过该命令我们无需配置就能快速构建 React 开发环境 create react app 自动创建的项目
  • Jmagic的常用方法

    1 Jmagic的基本安装和使用 1 下载和安装文件 下载安装包 ImageMagick 6 8 0 4 Q16 windows 和jmagick win 6 3 9 Q8 默认安装在C Program Files ImageMagick
  • React Hooks 从认识到使用_hooks优缺点

    前言 Hook 是 React 16 8 的新增特性 它是完全可选的 并且100 向后兼容 它可以让你使用函数组件的方式 运用类组件以及 react 其他的一些特性 比如管理状态 生命周期钩子等 从概念上讲 React 组件一直更像是函数
  • java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream 我们先对DataOutputStream有个大致认识 然后再深入学习它的源码 最后通过示例加深对它的了解 转载请注明出处 http www cnblogs com skywang12345 p io
  • GDI+学习笔记1- 概述

    一 图形概述 Windows 窗体 GDI 是构成 Microsoft Windows 操作系统子系统的应用程序编程接口 API GDI 负责在屏幕和打印机上显示信息 顾名思义 GDI 是 GDI 的后续 后者是包含在 Windows 早期