package cn.lyc;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class ImageIO1 {
//文件地址
static String path = "C:\Users\86176\Desktop\p";
public static void main(String[] args) throws IOException {
//调用递归方法
add(new File(path));
}
//声明静态变量 用于拼接重命名
static int num = 0;
//路径,用于新文件创建的地方
static String url = "C:\Users\86176\Desktop\pl\";
public static void add(File file) throws IOException {
//如果上面的path是一个目录
if (file.isDirectory()) {
//拿到目录中的文件放到File[]中
File[] files = file.listFiles();
//遍历目录中的文件
for (File fs : files) {
//如果还有目录,就再调用这个方法(递归)
if (fs.isDirectory()) add(fs);
//如果是文件并且以.jpg或.png结尾的
if (fs.isFile() && (fs.getName().endsWith(".jpg")) || fs.getName().endsWith(".png")) {
//静态变量+1
++num;
//取得文件名
String name = fs.getName();
//下面的代码主要是为了给生成的新文件命名
//截取文件名,从开头截取到.的位置(不包含.)
String bname = name.substring(0, name.indexOf("."));
String mname = "test";
//截取文件名,从.的位置截取到最后(包含.)
String lname = name.substring(name.lastIndexOf("."));
//拼接为一个新名字
String newname = bname + mname + lname;
//System.out.println(newname);
//读取文件
BufferedImage i = ImageIO.read(fs);
//开启画笔
Graphics2D g = i.createGraphics();
//去锯齿,让文字变得光滑
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
//设置字体 宋体 加粗 大小为30
Font font = new Font("宋体", Font.BOLD, 30);
//使用这个字体
g.setFont(font);
//水印文字的内容
String src = "版权所有:2647871520";
//坐标(水印文字加进去的位置)
int x = 15;
int y = 30;
//设置颜色为红色
g.setColor(Color.RED);
//把水印文字写到图片中
g.drawString(src, x, y);
//关闭画笔
g.dispose();
//生成新文件到指定目录,重新命名
ImageIO.write(i, fs.getName().substring(name.lastIndexOf(".") + 1), new FileOutputStream(url + num + newname));
}
}
}
////如果上面的path是一个文件
else if (file.isFile()) {
++num;
BufferedImage i = ImageIO.read(file);
Graphics2D g = i.createGraphics();
String name = file.getName();
//System.out.println(name);
String bname = name.substring(0, name.indexOf("."));
String mname = "test";
String lname = name.substring(name.lastIndexOf("."));
String newname = bname + mname + lname;
//System.out.println(newname);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
Font font = new Font("宋体", Font.BOLD, 30);
g.setFont(font);
String src = "版权所有:2647871520";
int x = 10;
int y = 10;
g.setColor(Color.RED);
g.drawString(src, x, y);
g.dispose();
ImageIO.write(i, "jpg", new FileOutputStream(url + num + newname));
}
}
}