批量图片处理:如何给多个图片都加上连续的序号?
今天是周六,一大早上起来,阳光明媚,除了冷还是个好天气!
大东北的冬天可不是盖的。
打开电视,开始听音乐,舒缓一下心情,同时准备早饭
正当准备吃饭的时候,一位高中同学给我发来消息:“有没有啥软件能批量处理图片,递增添加序号呢?有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()));} }
赞 (0)