Bootstrap

批量图片处理:如何给多个图片都加上连续的序号?

今天是周六,一大早上起来,阳光明媚,除了冷还是个好天气!
大东北的冬天可不是盖的。

打开电视,开始听音乐,舒缓一下心情,同时准备早饭

正当准备吃饭的时候,一位高中同学给我发来消息:“有没有啥软件能批量处理图片,递增添加序号呢?有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()));
	}
 
}

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;