近日在找工作,在看其中的一间面试的公司的网站的时候,看到了一些JAVA图片处理的一些功能,这家公司主要是做图像方面的。比如照片合成,个性印章的制作。为了作一些准备,有必要自己动手试了一下实现这些功能。大概原理和在图片上加水印文字一样。
合成图像:比如制作个性印章。首先需要准备2张图,1张白色的图片:bg.jpg,一张是印章的边框的图片template.gif,需要处理成透明。(制作这样风格的图片,可以使用photoshop的“置换”滤镜):

template.gif
程序处理部分是需要把输入的文字,和选择的template合成到bg.jpg里,在这里,我硬编码了输入文字到程序里,template使用已经准备好了的template.gif,当然,可以有更多的template提供给用户选择。bg.jpg是一张90×90的jpg全白色文件。这些我都暂时放在C盘根目录下。程序处理如下:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.*;
public class TestDrawFont {
public static void main(String[] args) {
try {
BufferedImage image = ImageIO.read(new FileInputStream("c:\\bg.jpg"));
Graphics2D g = image.createGraphics();
BufferedImage image_template = ImageIO.read(new FileInputStream("c:\\template.gif"));
g.setColor(Color.red);
g.setFont(new Font("汉鼎简中黑",Font.ITALIC + Font.BOLD + Font.LAYOUT_LEFT_TO_RIGHT, 23));//写入签名
g.drawString("帅哥",22, image.getHeight() - 50);
g.drawString("印章",22, image.getHeight()-30);
g.drawImage(image_template, 5,image.getHeight() - 85, image_template.getWidth(null),image_template.getHeight(null), null);
g.dispose();
FileOutputStream out = new FileOutputStream("c:\\all.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
执行后的效果是:
补充一下:
Java 2 平台可以区分两种字体:物理 字体和逻辑 字体。
物理 字体是实际的字体库,包含字形数据和表,这些数据和表使用字体技术(如 TrueType 或 PostScript Type 1)将字符序列映射到字形序列。Java 2 平台的所有实现都支持 TrueType 字体;对其他字体技术的支持是与实现相关的。物理字体可以使用字体名称,如 Helvetica、Palatino、HonMincho 或任意数量的其他字体名称。通常,每种物理字体只支持有限的书写系统集合,例如,只支持拉丁文字符或只支持日文和基本拉丁文。可用的物理字体集合随配置的不同而不同。要求特定字体的应用程序可以使用 createFont 方法来捆绑这些字体,并对其进行实例化。
构造方法摘要
Font(String name, int style, int size)
根据指定名称、样式和点大小,创建一个新 Font
public abstract void drawString(String s,
float x,
float y)
public abstract void drawImage(BufferedImage img,
BufferedImageOp op,
int x,
int y)
分享到:
相关推荐
Java 2D是Java平台中的一个图形处理框架,它提供了丰富的功能来创建和操作复杂的二维图形和图像...在给定的压缩包文件"Java2D"中,可能包含了相关的示例代码、教程或者项目,供学习者深入理解和实践Java 2D的相关技术。
`java2d_jfcDemo`可能是一个示例,展示了如何在Swing应用中使用Java 2D进行绘图。 10. **文档**: 压缩包中的文档可能包含关于如何使用这些资源的指南、API参考或教程,对于学习和理解Java 2D编程至关重要。 解压后...
Java2D动画效果是Java图形用户界面(GUI)开发中的一个重要组成部分,它允许开发者创建出丰富、动态的视觉展示。这个系列的学习旨在...通过学习和实践,开发者能够创建出生动有趣的2D应用程序,提升用户的交互体验。
这个中文教程旨在帮助Java开发者更好地理解和掌握Java 2D API,以便在自己的应用中实现丰富的视觉效果。 Java 2D API 包含了大量的类和接口,主要用于绘制2D图形、文本和图像。它基于组件层次结构,允许开发者对...
通过这些例程,我们可以学习到如何使用Java 2D创建基本的2D图形,如简单的几何形状、文本和图像的处理,以及如何使用Java 3D构造复杂的3D场景,包括形状的创建、变换、光照的应用以及相机视角的设置。实践这些代码将...
计算机 图形学 应用JAVA 2D 和 3D
2、运行com.jb.arklis.java2d.app.TestImage类 3、如果一切正常,那么你会看到著名的Java大手的动画 4、在Java2Demo工程中,双击demo.html文档,如果一切正常,那么你会看Java大手的Applet小程序动画 目的:Java 2D...
#### 一、Java 2D API 概述与应用场景 Java 2D API 是 Java 平台上的一个高级图形处理库,它为开发人员提供了绘制复杂图形的能力,包括线条、形状、图像等。通过 Java 2D,开发者可以轻松创建复杂的用户界面组件和...
同时,你需要熟悉相关的API,如AWT、Swing、Java2D和Java3D,它们提供了大量预定义的图形组件和方法。 在实际项目中,这些技术常用于游戏开发、科学可视化、数据可视化、CAD设计、教育软件等领域。例如,你可以创建...
通过Java2D Demo的学习,开发者不仅可以掌握Java2D的基本用法,还能探索高级的图形技巧,为开发出富有创意的2D图形应用打下坚实的基础。无论你是游戏开发者、数据可视化工程师还是界面设计师,Java2D都提供了一套...
Java2D是Java平台的一个核心部分,提供了丰富的图形绘制和图像处理功能,使得开发者能够创建出具有复杂视觉效果的应用程序。 在Java2D物理引擎中,主要涉及到以下几个关键知识点: 1. **基本概念**:物理引擎的...
- **透视投影**:介绍透视投影的概念及其在 Java 2D 中的应用,以及如何通过投影来模拟三维空间中的深度感。 - **透视图形的显示**:探讨如何在 Java 2D 中绘制具有透视效果的图形。 - **隐蔽面消除问题**:解决在...
JAVA2D 是Java 2平台的核心组件,它极大地扩展了Java应用程序的图形处理能力。本教程旨在介绍Java 2D API的基础知识,帮助初学者掌握如何利用这个强大的工具集创建专业级别的图形应用。 1. **图形、文本和图像增强...
总之,Java2D是一个非常有用的工具,对于希望在Java应用程序中添加复杂图形界面的开发者来说,它是一个不可或缺的选择。通过学习和实践这样的案例,开发者可以更好地掌握Java2D的核心概念和技术要点。
在这个主题中,我们重点关注如何使用Java语言的2D和3D图形库来实现计算机图形学的应用。"计算机图形学:应用JAVA 2D和3D X-7"很可能是某个课程或者教程的章节,专门探讨了在Java平台上进行图形编程的技术和方法。 *...
在Java 2D开发中,Graphics类是核心组件,它提供了丰富的绘图功能,用于在Java应用的组件上绘制图形、文本和图像。以下是对Java 2D高级绘图技术的详细解释: 1. **Graphics类**:Graphics类位于java.awt包中,它是...
### JSP与Java2D Web图表编程 #### Java2D概述 Java2D是Java平台提供的用于绘制高质量二...通过上述步骤,可以有效地利用Java2D和JSP技术创建出美观且功能强大的Web图表,极大地提升了Web应用程序的用户体验和功能性。
Java 2D是Java平台的一部分,它提供了高级图形功能,使得开发者能够轻松地创建高质量的二维图形应用程序。通过本指南,您将学习到如何使用Java 2D来绘制复杂的图形、处理图像以及实现各种图形效果。 #### 一、Java ...
在实际应用中,Graphics2D的强大功能还体现在它可以与其他Java 2D API结合使用,如Shape接口、Paint接口和Font类,以实现更复杂的图形效果。例如,你可以使用Stroke接口定义线条的样式,使用GradientPaint或...
在Java编程语言中,提供了两个库来支持计算机图形学的应用:Java2D和Java3D。 Java2D是一个二维图形和文本渲染引擎,它为开发者提供了强大的工具来创建高质量的静态图像和动态图形。Java2D基于矢量图形的概念,可以...