private void dealImg(){
String srcImgPath = "本地地址";
try {
// 读取原图片信息
File srcImgFile = new File(srcImgPath);// 得到文件
Image image = ImageIO.read(srcImgFile);
int width = ((BufferedImage) image).getWidth();
int height = ((BufferedImage) image).getHeight();
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, width, height);
g2.drawImage(image, 0, 0, width, height, null);
/** 设置生成图片的文字样式 * */
Font font = new Font(Font.SERIF, Font.PLAIN, 14);
g2.setFont(font);
g2.setPaint(Color.RED);
/** 设置字体在图片中的位置 在这里是居中* */
FontRenderContext context = g2.getFontRenderContext();
/** 防止生成的文字带有锯齿 * */
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
SimpleDateFormat fmtTemp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 水印内容,需要的话可以循环添加(内容也可使用\n、\t等)
String word = "2090 12 20 45:25:25";
int offsetY = 14 - 28;
Rectangle2D bounds = font.getStringBounds(word, context);
double x = (width - bounds.getWidth()) - 300;
//double y = (height - bounds.getHeight()) / 2; //Y轴居中
double y = (height - bounds.getHeight()) - offsetY;
/** 在图片上生成文字 * */
g2.drawString(word, (int) x, (int) y);
String waterMarkFilePath = srcImgPath.replace("source", "new");
FileOutputStream out = new FileOutputStream(waterMarkFilePath);
ImageIO.write(bi, "jpg", out);
} catch (Exception e) {
e.printStackTrace();
}
}