本章介绍了JAVA 2D的起源,贡献者,相关技术以及性能.
(1) JAVA 2D是什么?
JAVA 2D API(Java 2D Application Programming Interface)指一个用于提供高性能图形操作的JAVA类的集合.JAVA 2D作为JAVA2核心类库的一部分,在下面两个包中引入了一些新类:①
● java.awt
● java.awt.image
JAVA 2D API还包括了下面六个全新的类包:
● java.awt.color
● java.awt.font
● java.awt.geom
● java.awt.print
● java.awt.image.renderable
● com.sun.image.codec.jpeg②
除了com.sun.image.codec.jpeg② ,其它几个类包都属于Java2的核心类库
(2) JAVA 2D能做什么?
Java2D设计的目的是做一切你想做的(当然,是指计算机图形方面).在Java2D之前,AWT的图形工具包有以下的不足:
○ 只能绘制一个像素粗细的直线
○ 只支持一少部分字体
○ AWT不能很好的控制绘图过程,比如不能单独设置字符串中字符的形状.
○ 没有提供能直接旋转或者伸缩图形的API
○ 没有提供一些特殊填充操作的API,比如用渐变的颜色或图案来填充一个形状.
○ 支持的图象格式很少
○ 透明处理操作很困难
Java 2D API的出现填补了上述的这些缺点并且增加了更多的功能,包括:
形状(shapes)
所有的几何形状都可以一些直线与曲线组合而来.Java 2D API提供了几种定义诸如点、直线、曲线和矩形等常用的几何对象的类.在第三章中会详细的讲解这些.
笔划(stroking)
可以画任意粗细的实线或虚线—— 有一个叫做笔划(stroking)的属性.你能自己定义虚线的样式,还可以指定图形拐角与直线两端的样式.这些在第四章中会讲到.
填充(filling)
可以使用单色、渐变的颜色、纹理以及你能想到的任何东西来填充一个形状.这些也包括在第四章中.
变换(transformations)
所有使用JAVA 2D API画的图象都能被拉伸,收缩或者旋转.包括形状,文本,图像.而想实现这些操作你所需做的只要告诉Java 2D API你想执行那种图形变换.具体内容见第五章.
α 合成(alpha composting)
合成是指增加一个新的元素到已有的图像上的过程.Java 2D API使用Porter-Duff合成规则提供了一个富有弹性的合成机制.(第五章)
剪切(clipping)
剪切是指讲绘图操作限制在一个指定的区域中.举个例子:在一个窗口上绘图通常就是将绘图限制在窗口边界包围的那块区域中.(第五章)
反锯齿(antialiasing)
反锯齿是一种在绘图中减少边界处锯齿状的技术.(第五章)
文本(text)
Java 2D API支持安装在系统中的TureType或者Type1字体.你能过绘制字符串,得到字符串或单个字符的形状,可以象操作形状(Shape)一样操作文本.(第六章&第七章)
颜色(color)
精确的表示颜色是很困难的.Java 2D API包括了一些类与方法,通过与硬件无关的方式来表示颜色.
图像(images)
图象处理(image processing)
打印(printing)
(3) 与JAVA 2D相关的API与术语
Java 基础类库(Java Foundation Classes)
Java基础类库包括AWT,Swing,可访问性API(the Accessibility API),拖放数据传输API(the Drag and Drop API)
Java多媒体API(Java Media APIs)
Java多媒体API是为了支持多媒体功能而设计的,Java 2D API是其中的一部分.其它的多媒体API包括Java3D API,Sound API,以及Advanced Imaging API.
(4) JAVA 2D的起源
Java 2D API是SUN与Adobe,Ductus,Kodak,Taligent这四个公司合作完成的.
(5) 示例:
包含在文后的附件中.
注:① 具体指下列类
- java.awt
- java.awt.AlphaComposite
- java.awt.BasicStroke
- java.awt.Color
- java.awt.Composite
- java.awt.CompositeContext
- java.awt.Font
- java.awt.GradientPaint
- java.awt.Graphics2D
- java.awt.GraphicsConfiguration
- java.awt.GraphicsDevice
- java.awt.GraphicsEnvironment
- java.awt.Paint
- java.awt.PaintContext
- java.awt.Rectangle
- java.awt.Shape
- java.awt.Stroke
- java.awt.TexturePaint
- java.awt.Toolkit
- java.awt.Transparency
- java.awt.image
- java.awt.image.AffineTransformOp
- java.awt.image.BandCombineOp
- java.awt.image.BandedSampleModel
- java.awt.image.BufferedImage
- java.awt.image.BufferedImageFilter
- java.awt.image.BufferedImageOp
- java.awt.image.ByteLookupTable
- java.awt.image.ColorConvertOp
- java.awt.image.ColorModel
- java.awt.image.ComponentColorModel
- java.awt.image.ComponentSampleModel
- java.awt.image.ConvolveOp
- java.awt.image.DataBuffer
- java.awt.image.DataBufferByte
- java.awt.image.DataBufferInt
- java.awt.image.DataBufferShort
- java.awt.image.DirectColorModel
- java.awt.image.IndexColorModel
- java.awt.image.Kernel
- java.awt.image.LookupOp
- java.awt.image.LookupTable
- java.awt.image.MultiPixelPackedSampleModel
- java.awt.image.PackedColorModel
- java.awt.image.Raster
- java.awt.image.RasterformatException
- java.awt.image.RasterOp
- java.awt.image.RenderedImage
- java.awt.image.RescaleOp
- java.awt.image.SampleModel
- java.awt.image.ShortLookupTable
- java.awt.image.SinglePixelPackedSampleModel
- java.awt.image.WritableRaster
② 在JDK1.4后增加了javax.imageio包,完全可以取代com.sun.image.codec.jpeg,并且支持png,jpeg,bmp,wbmp,gif格式图形文件的读写操作(对GIF文件的写操作在JDK1.6中才实现,因为GIF文件的压缩算法到这个时候才到期^_^)
分享到:
- 2006-12-06 22:58
- 浏览 4581
- 评论(1)
- 论坛回复 / 浏览 (1 / 5547)
- 查看更多
相关推荐
FPC插座-1.0mm间距2D3D三维视图PCB封装库AD库(29个封装合集) Component Count : 29 Component Name ----------------------------------------------- FPC1.0-2H-WS-2P FPC1.0-2H-WS-3P FPC1.0-2H-WS-4P FPC1.0-...
<result name="maintainReport">/page/report/jira/maintain_version_reach_component_trend_report.jsp</result> <result name="dataReport">/page/report/jira/maintain_version_reach_component_trend_table.jsp...
Major Functionalities in MPEG-4 Version 2<br>m 3.1 Systems<br>m 3.2 Visual<br>n 3.2.1 Natural Video<br>n 3.2.2 Body animation<br>n 3.2.3 Coding of 3-D Polygonal Meshes<br>m 3.3 Audio<br>m 3.4 DMIF<br...
FPC1.0 LCP屏接口Altium封装库AD三维视图PCB封装库(2D3D封装库)封装列表如下:Component Count : 29 Component Name ----------------------------------------------- FPC1.0-2H-WS-2P FPC1.0-2H-WS-3P FPC1.0-...
heack-simulate-2D-world-game-of-life-v1.0-0-g9bcb40e.zip
- Camera Window >>DEMO - Cinematics >>DEMO - Content Fitter >>DEMO - Forward Focus >>DEMO - Geometry Boundaries - Limit Distance >>DEMO - Limit Speed >>DEMO - Numeric Boundaries >>DEMO - Pan ...
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/servlet/DisplayChart</url-pattern> </...
<br>http://img.verycd.com/posts/0712/post-320613-1198518185.gif<br><br>书名:Quartz 2D Graphics for Mac OS X® Developers <br>作者:R. Scott Thompson <br>出版社:Addison Wesley Professional <br>出版...
联想H435,主板CFM2D3M-REV1.0- 2内存槽BIOS
2D Graphics and Animation<br/>Chapter 3. Interactivity and User Interfaces<br/>Chapter 4. Sound Effects and Music<br/>Chapter 5. Creating a 2D Platform Game<br/>Chapter 6. Multi-Player Games<br/><br/...
主要类说明: ---------------------------- ...PhysicsSprite 物理精灵 将Sprite和box2d进行了二次封装<br/> StaticData 静态数据类 废弃了...<br/> StaticDataEx 静态数据类<br/> TextData 专门保存字符串数据的<br/>
cocos2d-x 安装包.cocos2d-1.0.1-x-0.10.0版本。
依赖:org.eclipse.gef***, org.eclipse.draw2d***<br><br>Draw2D<br><br>Draw2D同样基于SWT,是一个轻量的图形库。Draw2D应用为GEF的View,但又不仅仅限于此。依赖:org.eclipse.draw2d***<br>本软件GEF-ALL-3.2.2...
2-98 unity2D游戏引擎Strange Engine -2D Top Down Engine 1.2.12-98 unity2D游戏引擎Strange Engine -2D Top Down Engine 1.2.12-98 unity2D游戏引擎Strange Engine -2D Top Down Engine 1.2.12-98 unity2D游戏引擎...
PFC2D学习笔记之加载-求解-模拟-结果分析 PFC2D学习笔记之加载-求解-模拟-结果分析
jbox2d-2.0.1-library-only JAVA版本的BOX2D物理引擎;
<br><br><br>译者序<br>前言<br>第1章 多线程<br>第2章 集合<br>第3章 网络<br>第4章 数据库编程<br>第5章 分布式对象<br>第6章 高级Swing<br>第7章 高级AWT<br>第8章 JavaBean构件<br>第9章 安全<br>第10章 国际化...
<br><br><br>译者序<br>前言<br>第1章 多线程<br>第2章 集合<br>第3章 网络<br>第4章 数据库编程<br>第5章 分布式对象<br>第6章 高级Swing<br>第7章 高级AWT<br>第8章 JavaBean构件<br>第9章 安全<br>第10章 国际化...
FPC插座-0.5mm 1.0mm 1.25mm间距 Altium封装 AD封装库 2D+3D PCB封装库-32MB
cocos2d-x-3rd-party-libs,quick-cocos2d-x 适配 IPV6