- 浏览: 612087 次
- 性别:
- 来自: 卡哇伊
文章分类
- 全部博客 (299)
- C# (25)
- Java (1)
- WinForm (0)
- Asp.Net (86)
- Jsp (2)
- Php (1)
- Web Service (0)
- Desgin Patterns (19)
- Data Structure & Algorithms (1)
- SQLserver (41)
- Mysql (0)
- Oracle (2)
- Javascript (50)
- Ajax (10)
- Jquery (1)
- Flex (0)
- Regular Expression (5)
- DIV+CSS+XHTML+XML (18)
- Software Test (0)
- Linux (0)
- Utility (17)
- Net Digest (4)
- windows 2003 (10)
- Other (4)
- English (1)
- IT Term (1)
最新评论
-
w497480098h:
学习了 很好谢谢
SQL Server下无限多级别分类查询解决办法(简单查询树形结构数据库表) -
main_fun:
确实不错
iframe自适应高度 -
jveqi:
...
DBA -
mxcie:
其它版本没有确认,今天使用vs2003时,其.sln文件也需要 ...
彻底删除项目的VSS源代码管理信息 -
moneyprosper:
就只有IE支持,火狐和谷歌都不支持此种方法。正在寻找中。。。
从父页面读取和操作iframe中内容方法
图形化界面是 Windows 操作系统最重要的特性之一,微软以此迅速打败对手,赢得了用户的认可。计算机图形学一直是计算机科学体系中的重要内容,在 Windows 编程史上,图形操作也一直是核心开发技术之一。本章将介绍如何在 ASP.NET 的 Web 应用程序中 GDI+ 绘图。
10.1 图形基础
10.1.1 GDI+ 介绍
读者可能听说过 Windows GDI ( Graphics Device Interface , 图形装置界面),这是 Windows 操作系统的一个图形包,用于支持 Windows 操作系统中的图形界面,它也帮助开发人员在不考虑特定设备细节的情形下在计算机上进行绘图操作。比如就图形输出来说,开发人员在绘图时根本不用考虑是在屏幕上绘制还是在打印机上绘制,只需要指明输出设备即可让 GDI 自己解决这些细节问题。
随着开发技术的进步, GDI 从某种意义上已经不能满足需求,于是微软把 GDI 进一步封装抽象,形成新的 GDI+ ,并在性能和功能上进一步完善。 GDI+ 构成了 Windows XP 操作系统及其后续版本的子系统的应用程序编程接口( API )。 GDI+ 负责在屏幕和打印机上显示信息,它是 GDI 的改进,同时也是 .NET 框架结构的重要组成部分。和 GDI 一样,它提供了对二维图形图像和文字排版处理的支持,通过 GDI+ 能够创建与设备无关的应用程序。使用 GDI+ 可以创建图形、绘制文本以及将图形图像作为对象来操作,旨在提高性能和易用性。
与 GDI 相比, GDI+ 提供了一些新特性: Alpha 混合技术、反锯齿处理技术、渐变色和纹理填充、宽线条、基本几何曲线样式、可缩放区域、浮点数坐标、嵌入画笔、高质量过滤和缩放、多种线条样式和端点选项等。
当然,本书并不专门讲解图形编程,限于篇幅,本章将针对通用操作进行讲述。
10.1.1 GDI+ 基础
在学习 .NET GDI+ 图形操作以前,先将几个基础概念回顾一下。
1. 坐标系
GDI+ 在坐标系中绘制直线、矩形和其他形状,默认坐标系的原点是左上角,并且 X 轴指向右边, Y 轴指向下边。默认坐标系的度量单位是像素,如图所示。
2. 像素 计算机监视器是在一个点的矩形数组上创建其显示,这些点被称为图片元素或像素。各台监视器屏幕上显示的像素数量都是不同的,并且用户通常可以在一定程序上配置单独一台监视器上显示的像素数量。比如通常所说的分辨率 1024*768 就是指 X 轴上有 1024 个像素、 Y 轴上有 768 个像素,所以坐标实际上是建立在像素点阵上的。下图表示了 3 个点及其坐标。
从这个意义上说,如何表示一条直线呢?下图演示了在确定两个点的情况下,如何在计算机点阵中表示一条直线。
由此可见,直线并非上那么直,只不过在分辨率很高的情况下肉眼无法分辨而已。当然,这个计算过程很复杂,是计算机图形学方面的知识,此处不再赘述。
3. 位图
位图是位的数组,它指定了像素矩阵中各像素的颜色,专用于单个像素的位数,决定了可分配到该像素的颜色数。例如,如果用 4 位来呈现每个像素,那么一个给定的像素就可以分配到 16 ( 24 = 16 )种颜色中的一种。简单来说,位数越多,表现出来的图形颜色越丰富、逼真。
存储位图的磁盘文件通常包含一个或多个信息块,信息块中存储了如每像素位数、每行的像素数以及数组中的行数等信息。不同格式的图形文件会采用不同的存储标准,一般会以不同的扩展名标识。
GDI+ 支持如下图形文件格式
◇ BMP
BMP 是 Windows 使用的一种标准格式,用于存储设备无关和应用程序无关的图像。一个给定 BMP 文件的每像素位数值( 1,4,8,16,24,32 或 64 )在文件头中指定。每像素 24 位的 BMP 文件是通用的。 BMP 文件通常是不压缩的,因此不太适合通过 Internet 传输。
◇可交换图像文件格式( GIF )
GIF 是一种用于在网页中显示图像的通用格式。 GIF 文件适用于画线、有纯色块的图片和在颜色之间有清晰边界的图片。 GIF 文件是压缩的,但是压缩过程中没有信息丢失,解压缩的图像与原始图像完全一样。 GIF 文件中的一种颜色可以被指定为透明,这样,图像将具有显示它的任何网页的背景色。在单个文件中存储一系列 GIF 图像可以形成一个动画 GIF 。 GIF 文件每像素最多能存储 8 位,所以它们只限于使用 256 种颜色
◇联合摄影专家组( JPEG )
JPEG 是一种适应于自然景观(如扫描的照片)的压缩方案。一些信息会在压缩过程中丢失,但这些丢失人眼是察觉不到的。 JPEG 文件每像素存储 24 位,因此它们 8 能够显示超过 1600 万种颜色。 JPEG 文件不支持透明或动画。 JPEG 图像中的压缩级别是可以控制的,但较高的压缩级别(较小的文件)会导致丢失更多的信息。对于一幅以 20 : 1 压缩比生成的图像,人眼难以把它和原始图像区别开来。与 BMP 和 GIF 相比, JPEG 压缩不适用于线条图形、纯色块和清晰边界。
有意思的是, JPEG 是一种压缩方案,不是一种文件格式,“ JPEG 文件交换格式( JFIF )”是一种文件格式,常用于存储和传输已根据 JPEG 方案压缩的图像。 Web 浏览器显示的 JFIF 文件使用 .jpg 扩展名
◇可交换图像文件( EXIF )
EXIF 是一种适用于数码相机拍摄的照片的文件格式,其文件中含有根据 JPEG 规格压缩的图像。 EXIF 文件中还包含了有关照片的信息(拍摄日期、快门速度、曝光时间等)和相机信息(制造商、型号等)。
◇可移植网络图形( PNG )
PNG 格式不但保留了许多 GIF 格式的优点,还提供了超出 GIF 的功能。像 GIF 文件一样, PNG 文件在压缩时也不损失信息。 PNG 文件能以每像素 8,24 或 48 位来存储颜色,并以每像素 1 、 2 、 4 、 8 或 16 位来存储灰度。相比之下, GIF 文件只能使用每像素 1 、 2 、 4 或 8 位。 PNG 文件还可为每个像素存储一个 Alpha 值,该值指定了该像素颜色与背景颜色混合的程度。
PNG 优于 GIF 之处在于,它能渐进地显示一幅图像(也就是说,在图像通过网络连接传递的过程中,显示的图像将越来越完整)。 PNG 文件可包含灰度校正和颜色校正信息,以便图像在各种各样的显示设备上精确地呈现。
◇标签图像文件格式( TIFF )
TIFF 是一种灵活的、可扩展的格式,各种各样的平台和图像应用程序都支持这种格式。 TIFF 文件能以每像素任意位来存储图像,并可以使用各种各样的压缩算法。单个的多页 TIFF 文件可以存储数幅图像;可以把与图像相关的信息(扫描仪制造商、主机、压缩类型、打印方向和每像素采样等)存储在文件中并使用标签来排列这些信息;也可以根据需要通过批准和添加新标签来扩展 TIFF 格式。
4. 颜色
计算机中的颜色表示通常有以下 3 种方式:
◇ RGBA (Red Green Blue Alpha)
R 代表红色, G 代表绿色, B 代表蓝色, A 代表透明度,即可红、绿、蓝和透明度的组合来表示计算机中的所有颜色。
RGB 是色光的色彩模式: 3 各色彩叠加形成了其他的色彩。因为 3 种颜色都有 256 个亮度水平级,所以 3 种色彩叠加就形成 1670 万种颜色了,也就是真彩色,通过它们足以展现绚丽的世界。在 RGB 模式中,由红、绿、蓝相叠加可以产生其他颜色,因此该模式也叫加色模式。所有显示器、投影设备以及电视机等许多设备都是依赖于这种加色模式来实现的。
就编辑图像而言, RGB 色彩模式也是最佳的色彩模式,因为它可以提供全屏幕的 24 位的色彩范围,即真彩色显示。但是,如果将 RGB 模式用于打印,那就不是最佳的了,因为 RGB 模式所提供的有些色彩已经超出了打印的范围之外,因此在打印一幅真彩色的图像时,就必然会损失一部分亮度,并且比较鲜艳的色彩会失真。
◇ HSB
即用色调、饱和度、亮度的组合方式来表示颜色,其中 H 表示色相, S 表示饱和度, B 表示亮度。
色相:表示纯色,即组成可见光谱的单色。红色在 0 度,绿色在 120 度,蓝色在 240 度。它基本上是 RGB 模式全色度的饼状图。
饱和度:表示色彩的纯度,为 0 是为灰色。白、黑和其他灰色色彩都没有饱和度。在最大饱和度时,每一色相具有最纯的色光。
亮度:表示色彩的明亮度。为 0 时即为黑色,最大亮度是色彩最鲜明的状态。
◇ CMYK
代表印刷上用的 4 种颜色, C 代表青色, M 代表洋红色, Y 代表黄色, K 代表黑色。这 4 种颜色的组合用来表示印刷上的颜色。
当阳光照射到一个物体上时,这个物体将吸收一部分光线,并将剩下的光线进行反射,反射的光线就是人们所看见的物体颜色。这是一种减色色彩模式,同时也是与 RGB 模式的根本不同之处。不光人们看物体的颜色时用到了这种减色模式,而且在纸上印刷时应用的也是这种减色模式。按照这种减色模式,就衍变出了适合印刷的 CMYK 色彩模式。因为在实际应用中,青色、洋红色和黄色很难叠加形成真正的黑色,最多不过是褐色而已,因此才引入 K- 黑色。黑色的作用是强化暗调,加深暗部色彩。
CMYK 模式是最佳的打印模式。
在 .NET 平台上运用颜色时,用户不必关心这些细节, System.Drawing.Color 结构封装了大部分常用颜色值及其操作。
从这个意义上说,如何表示一条直线呢?下图演示了在确定两个点的情况下,如何在计算机点阵中表示一条直线。
发表评论
-
向SqlCommand对象的ParameterCollections集合添加参数时犯的低级错误
2009-10-23 16:58 1496今天写代码遇到了一个小小的问题看来是基础不过关啊,嘿嘿. ... -
数字金额转为大写金额
2009-10-21 16:46 1261方法一: /// <summary> ... -
格式化文件大小的C#方法
2009-10-21 10:31 1811/// <summary> // ... -
学习C#:Attribute与Property
2009-10-04 14:23 2765一.什么是Attribute 先看下面的三段代码: ... -
String和StringBuilder的区别和使用
2009-08-11 10:22 1272String是固定不变的,在进行字符串连接的时候是新建一 ... -
C#值类型后面加问号表示可为空null(Nullable 结构)
2009-08-04 14:38 7975值类型后面加问号表示可为空null(Nullable 结构)N ... -
C# 替换去除HTML标记方法(正则表达式)
2009-07-31 11:02 8634using System.Text.RegularExpres ... -
C#里面比较时间大小三种方法
2009-07-29 12:55 12211。比较时间大小的实验 string str1 ... -
DataTime.Ticks
2009-07-29 07:30 4483java Date.getTime() getTime pub ... -
.net读取和写入txt文件
2009-07-21 23:34 7339//检查文件,如果文件不 ... -
Static方法
2009-07-19 23:28 8561.static方法是类中的一个成员方法,属于整个类,即使不用 ... -
C#中判断空字符串的3种方法性能分析
2009-07-02 08:47 12363种方法分别是: string a="&qu ... -
ASP.NET发布网站解决方案
2009-06-30 14:31 5358对于想了解发布网站那 ... -
C#中@的用法
2009-06-28 06:13 8631. 加在字符串前面,字符串中的 \ 失去转义符的作用,直接 ... -
c# cs 生成dll
2009-06-25 23:00 2352C# 语言是一种简单但功 ... -
C#项目引用完全相同dll文件的问题解决方法(反射)
2009-06-25 19:52 7214今天有开发人员问我一个问题,他的项目中要引用两个类库,这两 ... -
ADO.NET事务
2009-06-23 14:07 978private void DemoTranscation() ... -
null,"",String.Empty的区别
2009-06-16 16:37 11691.null null 关键字是表示不引用任何对象的空引用 ... -
C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
2009-06-13 14:56 10941.C#类和接口的区别 ... -
Asp.net日期格式
2009-06-06 18:37 1283DateTime dt = DateTime.Now; ...
相关推荐
建筑工地扬尘治理与文明施工检查表.docx
基于java的个性化旅游攻略定制系统设计与实现.docx
数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 导弹追击模型的建立与求解 共6页.pdf
基础课程辅助教学-JAVA-基于springBoot程序设计基础课程辅助教学系统设计与实现
适用人群:大学生 自学者 使用场景:大学生毕设 自学者练手项目 学习与交流 其它说明:部分资源来源网络及开源社区、仅供参考与学习、不可商用、若有侵权请联系删除! 内容概要:用springmvc实现的校园选课管理系统
java课程期末考试
C++ Vigenère 密码(解密代码)
工程研究中心申报基本情况一览表.docx
Vigenère 密码(加密代码)
密码学AES算法源代码,密码学实验
基于java的百货中心供应链管理系统设计与实现.docx
环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行
【资源说明】 大数据毕业设计 基于Python+Spark机器学习天气预测系统详细文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
购物系统 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程
BIM 人才培养的框架和方法 相关的标准
源项目文件
ActiveMQ消息中间件的测试案例
内容概要:本文全面解析了汽车电动化、智能化背景下,车规芯片SoC的重要性和发展趋势。首先概述了汽车行业发展三大趋势——新能源车市场崛起、智能化引领新潮流、商业模式及价值链重构。随后详细介绍了车规芯片SoC的应用领域,包括主控芯片、功率芯片、CMOS芯片、射频接收器、传感器、存储芯片及汽车面板,并阐述了它们的作用和技术需求。文章接着讨论了电子电气架构的演进路径,从分布式向集中式的演进对汽车芯片供应链带来的影响。最后探讨了汽车SoC的技术特征、应用领域、未来发展方向及其面临的挑战。 适合人群:汽车芯片设计师、汽车制造商、科研机构及相关行业的专业人士。 使用场景及目标:理解和掌握汽车芯片尤其是SoC在智能电动汽车中的应用及未来发展,帮助相关从业者做出更好的技术和商业决策。 其他说明:随着智能电动汽车市场的快速成长,车规芯片SoC作为核心技术将面临前所未有的机遇和挑战。
用于控制 Broadlink RM2/3 (Pro) 遥控器、A1 传感器平台和 SP2/3 智能插头的 Python 模块python-broadlink用于本地控制 Broadlink 设备的 Python 模块和 CLI。支持以下设备通用遥控器RM home、RM mini 3、RM plus、RM pro、RM pro+、RM4 mini、RM4 pro、RM4C mini、RM4S、RM4 TV mate智能插头SP mini、SP mini 3、SP mini+、SP1、SP2、SP2-BR、SP2-CL、SP2-IN、SP2-UK、SP3、SP3-EU、SP3S-EU、SP3S-US、SP4L-AU、SP4L-EU、SP4L-UK、SP4M、SP4M-US、Ankuoo NEO、Ankuoo NEO PRO、Efergy Ego、BG AHC/U-01开关MCB1、SC1、SCB1E、SCB2出口BG 800, BG 900电源板MP1-1K3S2U、MP1-1K4S、MP2环境传感器A1报警套件S1C、S2KIT灯泡LB1、LB26 R1、LB2
这是一份关于五个城市的PM2.5监测数据文件,以CSV格式存储。数据涵盖了广州、北京、沈阳等地的空气质量情况,旨在帮助研究人员和数据分析人员更好地理解城市空气污染状况。 使用人群 适合对环境科学、大气污染研究感兴趣的科研工作者、学生及环保组织成员使用。 数据内容 包含五个主要城市的PM2.5浓度数据 时间跨度较长,覆盖多年数据 CSV格式方便导入各种数据分析软件进行进一步处理和分析