欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

<2D Graphics>读书笔记----第一章(1.0) 博客分类: Java 2D/3D 读书JavaSUNSwing算法 

程序员文章站 2024-02-16 22:39:16
...

       本章介绍了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