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

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

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

正当准备吃饭的时候,一位高中同学给我发来消息:“有没有啥软件能批量处理图片,递增添加序号呢?有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("d", index);graphics.drawString(str, 98, 39);ImageIO.write(img, "jpg", new FileOutputStream("D:/image/out/"   file.getName()));} }

来源:https://www.icode9.com/content-4-823901.html

(0)

相关推荐