- 浏览: 723924 次
- 性别:
- 来自: 南宁
文章分类
最新评论
-
如果我爱上你的笑容:
牛腩老师讲的课很棒 目前新闻发系统学习中 `(*∩_∩*)′
64位win8.1系统安装intelhaxm -
k04110411:
jhlovett 写道牛哥,想问下 public void P ...
ASP.NET通过HTML的上传文件标签来上传文件 -
liuzhijie3:
我也留个脚印用到了,讲的不错
.NET中获取字符串的MD5码 -
han_yankun2009:
,楠老师不错呀
在一堆数中查询相加得某个数的组合 -
allstara609:
请问牛老师,datalist中如何去掉数字中多余的0?
去掉数字中多余的0(ASP.NET)
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。本文章经历昨晚本人五个小时的手打而成(且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话说:好记性不如烂笔头,把书的内容手打出来,对手,对脑,都有好处!!!
第 10 章 图形操作
图形化界面是 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
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
结构封装了大部分常用颜色值及其操作。
发表评论
-
用.NET CORE做项目,VS里编译碰到‘。。。。包降级。。。。’错误
2018-07-02 18:00 631用.NET CORE做项目,VS里编译碰到‘。。。。包降级。 ... -
VS2017中建立ASP.NET MVC 4.0项目
2018-02-04 15:35 719新的项目需要运行在WIN2003上,又不想用ASPX了,只好 ... -
用sendcloud来发邮件
2018-02-04 12:25 444平时发验证码邮件都是用免费域名邮箱,但是有时一频繁发多了就发 ... -
asp.net 中用easyui中的treegird的简单使用
2018-02-02 11:22 368几乎每个‘数人头’项目中都会用到的功能,这里先记下来,以后直 ... -
sql server中调用c#写的dll里的方法
2018-01-12 22:05 403最近有一项目: 一超市管理系统单机版,运行在WIN20 ... -
ASP.NET MVC中切换模板页(不同目录的cshtml文件)
2017-12-26 20:42 758看来以后建立一个父类控制器还是有必要的。。。 usi ... -
微信公众号支付安卓和WP手机能支付,苹果手机支付不了的问题解决
2016-03-10 22:57 448花了几天时间,终于搞好了,代码是从官网上下的.NET DEMO ... -
VS2015预览版体验
2014-11-15 21:42 18596.NET开源了,JAVA颤抖吧 ... -
在一堆数中查询相加得某个数的组合
2012-01-17 16:03 1343如题,一个网友问的,我又去问其他的网友,再网上搜索,发贴问,最 ... -
asp.net中使用swfupload上传大文件
2012-01-12 15:44 4641花了一天多时间研究出来的,其实也就是网上下别人的代码然后 ... -
repeater控件在绑定的时候添加行号
2011-12-26 20:55 1403最好的方法当然就是在提取数据的时候连行号也一起取出来,SQL ... -
asp.net中使用MYSQL参数化的方法
2011-12-14 10:34 3374在做一个项目,ASP.NET操作MYSQL数据库的,使用参数化 ... -
去掉数字中多余的0(ASP.NET)
2011-11-16 15:08 1777有这样一个需求,见下图:具体的在ASP.NET中的实现代码如下 ... -
牛腩购物网
2011-02-12 14:11 1219牛腩购物网 最新出的视频,演示网站 http: ... -
AJAX顺序输出
2010-10-13 10:54 1342在安装大多数CMS的时候都会在安装界面上看到这样的一个效果: ... -
获取本周的周一和周日
2010-09-17 11:42 1590// 获取本周 ... -
ASP.NET弹出遮罩层示例
2010-08-03 20:31 4762从某收费项目中提取出来的,网上一高手写的JQUERY插件,作用 ... -
WebService简单示例
2010-08-03 20:30 1414记录一下,以备后用: using System; u ... -
ASP.NET中递归绑定DDL下拉控件
2010-08-03 20:26 1393做个记录,省得以后用到的时候都得再找以前写的代码,而且发现以前 ... -
刚刚找到的IP地址对应地区数据库
2010-06-15 15:35 2329项目原因,网上下载了 We7 CMS安装版,(想下载源 ...
相关推荐
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第十五章介绍了图形图像编程,包括如何在ASP.NET中处理图像,以及使用GDI+库进行绘制和操作图像的方法。 第十八章和第十九章分别阐述了WCF(Windows Communication Foundation)和WPF(Windows Presentation ...
27.8 通过GDI+呈现图形数据 778 27.9 创建一个完整的Windows Forms应用程序 782 27.10 小结 788 虽然法律没有具体规定不可上传出版物电子版,如侵犯您的利益,请与本人或管理员联系删除资源;纸质版读起来更...
第 1 章认识 ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET 历史与展望 1.1.2 ASP.NET 与ASP 1.1.3 ASP.NET 开发工具 1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET 应用程序需...
通过.NET Framework中的GDI+类库,开发者能够轻松地创建高质量的二维图形应用。GDI+支持常见的图形元素如直线、矩形、椭圆、文本等,并且可以通过路径(GraphicsPath)来组织这些图形元素,从而形成复杂的图形。 ##...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 ...
第15章:介绍了如何使用ASP.NET中.NET应用程序框架的GDI+进行Web应用程序的图形图像编程。 第16章:随着互联网的不断发展,无刷新应用AJAX也越来越多的被人们所关注,本章详细的介绍了如何在ASP.NET 2.0和3.5中进行...
标签“C# Windows .NET .NET3.5 GDI+ Dev”进一步明确了技术栈,这个教程可能使用C#编程语言,并基于.NET Framework 3.5,这是一个广泛使用的开发平台,支持多种Windows应用程序的构建。GDI+ Dev可能指的是专门针对...
首先,GDI+是.NET Framework提供的一种图形绘制API,它允许开发者进行复杂的2D图形渲染,包括文本、图像以及自定义形状。GDI+提供了丰富的绘图对象,如Graphics、Pen、Brush、Font等,使得创建半透明效果成为可能。 ...
总结来说,这个ASP.NET开发大全教程旨在提供一个全面的入门指南,帮助初学者理解和掌握ASP.NET的各个方面,包括MVC、WPF、WCF和GDI+等关键技术,并通过ASP.NET 3.5的实践应用,提升开发能力。对于希望深入学习.NET...
GDI+是微软为Windows操作系统提供的图形绘制接口,它允许开发者创建高质量的图形、文本和图像。 在描述中提到的“不含WPF的GDI + .NET报告组件”,表明StarReport设计时避开了WPF,这可能是因为WPF对系统资源的要求...