类结构
java
.lang.Object
|____ java
.awt.Image
|____ java
.awt.image.BufferedImage
java
.lang.Object
|____ java
.awt.Graphics
|____ java
.awt.Graphics2D
API链接
BufferedImage Graphics2D
简介
public class BufferedImage extends Image implements WritableRenderedImage, Transparency
BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。BufferedImage 由图像数据的 ColorModel 和 Raster 组成。Raster 的 SampleModel 中 band 的数量和类型必须与 ColorModel 所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage 对象的左上角坐标都为 (0, 0)。因此,用来构造 BufferedImage 的任何 Raster 都必须满足:minX=0 且 minY=0。 此类依靠 Raster 的数据获取方法、数据设置方法,以及 ColorModel 的颜色特征化方法。
public abstract class Graphics2D extends Graphics
此 Graphics2D 类扩展 Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。
具体实现
import java
.awt.Color
import java
.awt.Font
import java
.awt.Graphics2D
import java
.awt.Image
import java
.awt.image.BufferedImage
import java
.io.FileNotFoundException
import java
.io.FileOutputStream
import java
.io.IOException
import javax
.swing.ImageIcon
import
com.sun.image.codec.jpeg.ImageFormatException
import
com.sun.image.codec.jpeg.JPEGCodec
import
com.sun.image.codec.jpeg.JPEGImageEncoder
public class Test2 {
public static void main(String[] args) {
ImageIcon vmImageIcon = new ImageIcon(
"D:/jpg/template.jpg")
Image image = vmImageIcon
.getImage()
int width = image
.getWidth(null)
int height = image
.getHeight(null)
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage
.TYPE_INT_RGB)
Graphics2D graphics2d = bufferedImage
.createGraphics()
graphics2d
.drawImage(image,
0,
0, null)
graphics2d
.setColor(Color
.BLACK)
graphics2d
.setFont(new Font(null, Font
.ITALIC,
30))
graphics2d
.drawString(
"123",
680,
200)
graphics2d
.dispose()
try {
FileOutputStream outPic = new FileOutputStream(
"D:/jpg/done.jpg")
JPEGImageEncoder imageEncoder = JPEGCodec
.createJPEGEncoder(outPic)
imageEncoder
.encode(bufferedImage)
outPic
.close()
} catch (FileNotFoundException e) {
e
.printStackTrace()
} catch (ImageFormatException e) {
e
.printStackTrace()
} catch (IOException e) {
e
.printStackTrace()
}
}
}