今天是周六,一大早上起来,阳光明媚,除了冷还是个好天气!
大东北的冬天可不是盖的。
打开电视,开始听音乐,舒缓一下心情,同时准备早饭
正当准备吃饭的时候,一位高中同学给我发来消息:“有没有啥软件能批量处理图片,递增添加序号呢?有1000多张图片,我编辑不了。”
我:“这个我也没弄过啊,但是可以帮你看看”
她: “高手都没整过?出了一个难题~好吧,谢谢啦,我再研究下”
虽然这波伤害性不大,但是侮辱性极强。
于是我:“这有啥难的,看我分分钟搞定。”
我想了一下,下面是我大概解决的思路:
- 首先用File类,批量读取文件。
- 然后用Graphics 类将序号渲染到图片上。
- 最后输出图片。
※文章最后有代码
然后我们测试一下
执行后效果:
很显然,【编号:0001】已经被完美加上了,这样她可能一上午的工作量被我几十行代码就搞定了。
她感谢仰慕我的同时,还让我给她推荐几本书,简单点的,她要自学。
我反手一个B站给她了,难道看视频不香吗?
当然上面的字体型号,大小,位置,颜色等等都是可以自己调的!感兴趣的小伙伴可以自己试一试哈!
话不多说,上代码:
package first;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class outputImage {
static int index=0;
public static void main(String[] args) throws IOException {
File file = new File("D:/image/");
getImage(file);
}
public static void getImage(File file) throws IOException {
for (File f : file.listFiles()) {
if (f.getName().endsWith(".jpg")) {
addFrontForImage(f);
}
}
}
public static void addFrontForImage(File file) throws IOException {
BufferedImage img = ImageIO.read(file);
Graphics2D graphics = img.createGraphics();
graphics.setColor(Color.black);
graphics.setFont(new Font("宋体", 1, 15));
index++;
String str = String.format("%04d", index);
graphics.drawString(str, 98, 39);
ImageIO.write(img, "jpg", new FileOutputStream("D:/image/out/" + file.getName()));
}
}