首先申明,我并不精通 Java 的图形图像处理 API 。因为整这个验证码,接触了一些,发现原来 JDK 提供了非常强大的图形图像处理能力。在网上找了点资料,现摘取其中的一些介绍放这,然后你可以下载整个文档( Java_2D_API_中文使用指.pdf )。
Java 2D API 增强了抽象窗口工具包( AWT )的图形、文本和图像功能,可以开发更为强大的用户接口和新型的 Java 应用程序。
除了更加强大的图形、文本和图像 API 外, Java 2D API 还改进了颜色的定义与复合及对任意几何形状和文本的选中检测,并为打印机和显示设备提供了统一的绘制模式。
Java 2D API 还可以创建高级图形库(例如 CAD-CAM 库和图形图像特殊效果库),并可创建图像和图形文件读 / 写过滤器。
当与 Java 媒体框架( JMF )和其它 Java 媒体应用程序配合使用时, Java 2D API 还可用来创建和显示动画和其它多媒体演示稿。 Java 动画和 Java 媒体框架 API 依赖 Java 2D API 提供支持。
Java 2D API 对 AWT 进行了扩展,提供了更加灵活、功能更全面的绘制包,使其支持更多的一般图形和绘制操作。
例如,用户通过 Graphics 类可以画矩形、椭圆和多边形。 Graphics2D 还提供了一种可绘制任意几何形状的机制,从而增强了几何绘制功能。类似地,利用 Java 2D API 还可以绘制任意宽度的线条,并可用任意文理填充几何形状。
几何形状是通过 Shape 接口的实现提供的(例如 Rectangle2D 和 Ellipse2D )。曲线和弧也是 Shape 的特定实现。
填充和画笔样式由 Paint 和 Stroke 接口的实现提供(例如 BasicStroke 、 GradientPaint 、 TexturePaint 和 Color )。
AffineTransfor 定义二维坐标的线性转换,包括缩放、平移、旋转和修剪。
剪切区域有用来定义一般剪切区域的 Shape 接口的同一实现来定义(例如 Rectangle2D 和 GeneralPath )。
颜色复合由 Composite 接口的实现提供(例如 AlphaComposite )。
Font 由 Glyphs 集定义,而 Glyphs 集由单个 Shape 定义。