`
Eastsun
  • 浏览: 308805 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

<2D Graphics>读书笔记----第一章(1.0)

阅读更多

       本章介绍了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文件的压缩算法到这个时候才到期^_^)

  • source.rar (13.8 KB)
  • 描述: 本文用到的代码
  • 下载次数: 248
分享到:
评论
1 楼 ttitfly 2007-01-18  
     

相关推荐

    FPC插座-1.0mm间距连接器接插件2D3D三维视图PCB封装库AD库(29个封装合集).zip

    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-...

    FPC1.0 1mm间距LCD屏接口Altium封装库AD三维视图PCB封装库(2D3D封装库)封装列表如下:

    FPC1.0 LCP屏接口Altium封装库AD三维视图PCB封装库(2D3D封装库)封装列表如下:Component Count : 29 Component Name ----------------------------------------------- FPC1.0-2H-WS-2P FPC1.0-2H-WS-3P FPC1.0-...

    JFreeChart 折线、柱状组合图

    &lt;result name="maintainReport"&gt;/page/report/jira/maintain_version_reach_component_trend_report.jsp&lt;/result&gt; &lt;result name="dataReport"&gt;/page/report/jira/maintain_version_reach_component_trend_table.jsp...

    联想H435主板CFM2D3M-REV1.0-2内存槽BIOS

    标题中的“联想H435主板CFM2D3M-REV1.0-2内存槽BIOS”指的是联想品牌的一款型号为H435的主板,其内存插槽规格为CFM2D3M,版本号为REV1.0,具有两个内存插槽。在计算机硬件中,主板是系统的核心组成部分,它连接了...

    ProCamera2D

    - Camera Window &gt;&gt;DEMO - Cinematics &gt;&gt;DEMO - Content Fitter &gt;&gt;DEMO - Forward Focus &gt;&gt;DEMO - Geometry Boundaries - Limit Distance &gt;&gt;DEMO - Limit Speed &gt;&gt;DEMO - Numeric Boundaries &gt;&gt;DEMO - Pan ...

    jfree包 包括实例 jar-hamcrest,jcommon,jfreechart,jfreesvg,orsoncharts,swtgraphics2d

    &lt;servlet-class&gt;org.jfree.chart.servlet.DisplayChart&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;DisplayChart&lt;/servlet-name&gt; &lt;url-pattern&gt;/servlet/DisplayChart&lt;/url-pattern&gt; &lt;/...

    Quartz 2D Graphics for Mac OS X Developers

    &lt;br&gt;http://img.verycd.com/posts/0712/post-320613-1198518185.gif&lt;br&gt;&lt;br&gt;书名:Quartz 2D Graphics for Mac OS X® Developers &lt;br&gt;作者:R. Scott Thompson &lt;br&gt;出版社:Addison Wesley Professional &lt;br&gt;出版...

    Developing Games in Java

    2D Graphics and Animation&lt;br/&gt;Chapter 3. Interactivity and User Interfaces&lt;br/&gt;Chapter 4. Sound Effects and Music&lt;br/&gt;Chapter 5. Creating a 2D Platform Game&lt;br/&gt;Chapter 6. Multi-Player Games&lt;br/&gt;&lt;br/...

    页面看板娘.zip

    这两个文件很可能是用于创建2D动态人物的核心库,由Live2D(一款日本开发的实时2D模型技术)提供支持。Live2D使得开发者能够创建出逼真的2D动画,通过简单的编程接口(API)就能让这些角色在网页上动起来。"min.js...

    一款基于cocos2d-x开发的一款横版卷轴类游戏

    主要类说明: ---------------------------- ...PhysicsSprite 物理精灵 将Sprite和box2d进行了二次封装&lt;br/&gt; StaticData 静态数据类 废弃了...&lt;br/&gt; StaticDataEx 静态数据类&lt;br/&gt; TextData 专门保存字符串数据的&lt;br/&gt;

    GPS通讯协议GPS通讯协议

    - **格式**:$GPGSA,&lt;1&gt;,&lt;2&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;3&gt;,&lt;4&gt;,&lt;5&gt;,&lt;6&gt;*hh&lt;CR&gt;&lt;LF&gt; - **字段解释**: - `&lt;1&gt;`:模式(M表示手动,A表示自动)。 - `&lt;2&gt;`:当前状态(1表示无定位信息,2表示2D...

    heack-simulate-2D-world-game-of-life-v1.0-0-g9bcb40e.zip

    标题 "heack-simulate-2D-world-game-of-life-v1.0-0-g9bcb40e.zip" 暗示这是一个基于版本控制的项目,可能是一个2D模拟游戏,具体来说是生命游戏(Game of Life)。生命游戏是由数学家约翰·康威(John Horton ...

    离散LPV重复过程的l

    这里利用参数依赖Lyapunov 函数, 设计离散LPV 重复过程的参数依赖鲁棒l&lt;sub&gt;2&lt;/sub&gt;-l&lt;sub&gt;∞&lt;/sub&gt; 动态输出反馈控制器, 可确保闭环离散LPV 重复过程沿通道渐近稳定, 且具有一定的l&lt;sub&gt;2&lt;/sub&gt;-l&lt;sub&gt;∞&lt;/sub&gt; ...

    读取plist文件切割图集

    DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt; &lt;plist version="1.0"&gt; &lt;dict&gt; &lt;key&gt;frames&lt;/key&gt; &lt;dict&gt; &lt;key&gt;image1.png&lt;/key&gt; &lt;dict&gt; &lt;key&gt;frame...

    icepdf-core,icepdf-viewer实现pdf转jpg

    &lt;version&gt;6.x.x&lt;/version&gt; &lt;!-- 使用最新版本 --&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.icepdf&lt;/groupId&gt; &lt;artifactId&gt;icepdf-viewer&lt;/artifactId&gt; &lt;version&gt;6.x.x&lt;/version&gt; &lt;!-- 使用最新版本 --&gt; &lt;/...

    WPF 图片轮播 2D 3D

    **WPF 图片轮播 2D 3D** Windows Presentation Foundation(WPF)是Microsoft开发的一个用于构建桌面应用程序的框架,它提供了丰富的图形、多媒体和界面设计能力。在WPF中,我们可以创建复杂的2D和3D图像展示,其中...

    cocos2d-1.0.1-x-0.10.0

    Cocos2d-x 是一个开源的游戏开发框架,主要用于创建2D游戏、图形界面以及实时应用程序。这个框架基于C++,并且提供了多种语言接口,包括Python、JavaScript和Lua,让开发者可以选择他们熟悉的编程语言进行游戏开发。...

    Cocos2D-X开发学习笔记-加速度传感器事件的使用示例

    本篇笔记将聚焦于Cocos2D-X中的加速度传感器事件的使用,这对于开发涉及物理运动或者需要响应设备动态变化的游戏至关重要。 在移动设备上,加速度传感器能够检测到设备在三个轴(X、Y、Z)上的线性加速度,这对于...

    GEF-ALL-3.2.2

    依赖:org.eclipse.gef***, org.eclipse.draw2d***&lt;br&gt;&lt;br&gt;Draw2D&lt;br&gt;&lt;br&gt;Draw2D同样基于SWT,是一个轻量的图形库。Draw2D应用为GEF的View,但又不仅仅限于此。依赖:org.eclipse.draw2d***&lt;br&gt;本软件GEF-ALL-3.2.2...

    EmmyLua-AttachDebugger-1.0.0.4.zip

    "EmmyLua-AttachDebugger-1.0.0.4.zip"是这个工具的一个特定版本,版本号为1.0.0.4,意味着它可能包含了该版本的最新更新和修复。 在IntelliJ IDEA中,集成EmmyLua调试器使得程序员能够像调试Java代码一样调试Lua...

Global site tag (gtag.js) - Google Analytics