本章介绍了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
- 浏览 4675
- 评论(1)
- 论坛回复 / 浏览 (1 / 5588)
- 查看更多
相关推荐
FPC1.0 LCP屏接口Altium封装库AD三维视图PCB封装库(2D3D封装库)封装列表如下:Component Count : 29 Component Name ----------------------------------------------- FPC1.0-2H-WS-2P FPC1.0-2H-WS-3P FPC1.0-...
标题中的“联想H435主板CFM2D3M-REV1.0-2内存槽BIOS”指的是联想品牌的一款型号为H435的主板,其内存插槽规格为CFM2D3M,版本号为REV1.0,具有两个内存插槽。在计算机硬件中,主板是系统的核心组成部分,它连接了...
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...
- 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>出版...
【标签】"cocos2d-1.0." 指的是Cocos2d-x的特定版本系列。Cocos2d-x的版本号由主版本号、次版本号和修订号组成,这里只给出了主版本号和次版本号,表明这个压缩包与1.0.x系列有关,但没有具体到修订版。 【压缩包子...
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/...
这两个文件很可能是用于创建2D动态人物的核心库,由Live2D(一款日本开发的实时2D模型技术)提供支持。Live2D使得开发者能够创建出逼真的2D动画,通过简单的编程接口(API)就能让这些角色在网页上动起来。"min.js...
主要类说明: ---------------------------- ...PhysicsSprite 物理精灵 将Sprite和box2d进行了二次封装<br/> StaticData 静态数据类 废弃了...<br/> StaticDataEx 静态数据类<br/> TextData 专门保存字符串数据的<br/>
- **格式**:$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh<CR><LF> - **字段解释**: - `<1>`:模式(M表示手动,A表示自动)。 - `<2>`:当前状态(1表示无定位信息,2表示2D...
标题 "heack-simulate-2D-world-game-of-life-v1.0-0-g9bcb40e.zip" 暗示这是一个基于版本控制的项目,可能是一个2D模拟游戏,具体来说是生命游戏(Game of Life)。生命游戏是由数学家约翰·康威(John Horton ...
这里利用参数依赖Lyapunov 函数, 设计离散LPV 重复过程的参数依赖鲁棒l<sub>2</sub>-l<sub>∞</sub> 动态输出反馈控制器, 可确保闭环离散LPV 重复过程沿通道渐近稳定, 且具有一定的l<sub>2</sub>-l<sub>∞</sub> ...
reg = <0x2d>; pinctrl-names = "default"; pinctrl-0 = <&in3_reset>; reset-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; /* * parameters rockchip,lt9211c-module-type * * * * 0 PATTERN_TEST_...
DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>frames</key> <dict> <key>image1.png</key> <dict> <key>frame...
"EmmyLua-AttachDebugger-1.0.0.4.zip"是这个工具的一个特定版本,版本号为1.0.0.4,意味着它可能包含了该版本的最新更新和修复。 在IntelliJ IDEA中,集成EmmyLua调试器使得程序员能够像调试Java代码一样调试Lua...
首先,"cocos2d-x-3rd-party-libs"这个文件名表明这是一个与cocos2d-x引擎相关的第三方库集合。这些库通常包含了各种必要的组件,如音频处理、图像渲染、物理模拟等,它们是游戏开发中不可或缺的部分。当项目中包含...
<version>6.x.x</version> <!-- 使用最新版本 --> </dependency> <dependency> <groupId>org.icepdf</groupId> <artifactId>icepdf-viewer</artifactId> <version>6.x.x</version> <!-- 使用最新版本 --> </...
**WPF 图片轮播 2D 3D** Windows Presentation Foundation(WPF)是Microsoft开发的一个用于构建桌面应用程序的框架,它提供了丰富的图形、多媒体和界面设计能力。在WPF中,我们可以创建复杂的2D和3D图像展示,其中...