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

1 篇文章 0 订阅
1 篇文章 0 订阅

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

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

正当准备吃饭的时候,一位高中同学给我发来消息:“有没有啥软件能批量处理图片,递增添加序号呢?有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()));
	}
 
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
可以使用Python的Pillow库和os库来实现将图片批量放入多个文件夹的操作。具体步骤如下: 1. 导入Pillow库和os库: ```python from PIL import Image import os ``` 2. 定义一个函数,用于将图片批量放入多个文件夹: ```python def split_images_to_folders(input_dir, output_dir, num_folders): # 获取目录下所有图片文件的路径列表 image_paths = [os.path.join(input_dir, f) for f in os.listdir(input_dir) if f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png')] # 计算每个文件夹应该包含的图片数量 images_per_folder = len(image_paths) // num_folders # 创建输出文件夹 for i in range(num_folders): folder_path = os.path.join(output_dir, f'folder_{i+1}') os.makedirs(folder_path, exist_ok=True) # 将图片分配到不同的文件夹中 for i, image_path in enumerate(image_paths): folder_index = i // images_per_folder folder_path = os.path.join(output_dir, f'folder_{folder_index+1}') image = Image.open(image_path) image.save(os.path.join(folder_path, os.path.basename(image_path))) ``` 这个函数接受三个参数:输入文件夹路径、输出文件夹路径和文件夹数量。它会将输入文件夹下的所有图片文件按照均匀分配的方式放入指定数量的输出文件夹中。 3. 调用函数并传入参数: ```python input_dir = 'path/to/input/folder' output_dir = 'path/to/output/folder' num_folders = 5 split_images_to_folders(input_dir, output_dir, num_folders) ``` 这个例子将输入文件夹中的图片分配到5个输出文件夹中。你需要将`'path/to/input/folder'`替换成你的输入文件夹路径,将`'path/to/output/folder'`替换成你的输出文件夹路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东北亚大中华区首席搬砖工具人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值