鱼C论坛

 找回密码
 立即注册
查看: 1123|回复: 2

怎么用python处理图片?

[复制链接]
发表于 2024-2-5 19:53:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
手机里的图片想整理一下,,怎么用python对图片进行处理,按年月日进行分类?
代码怎么写?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-5 19:54:01 | 显示全部楼层
使用Python处理图片可以使用PIL库(Python Imaging Library)。

首先,你需要安装PIL库。在终端或命令提示符中运行以下命令:

  1. pip install pillow
复制代码


下面是一个示例代码,用于将图片按照年月日进行分类并移动到对应的文件夹中:

  1. from PIL import Image
  2. import os
  3. import shutil

  4. # 获取图片的日期信息
  5. def get_image_date(file_path):
  6.     with Image.open(file_path) as img:
  7.         info = img._getexif()
  8.         if 36867 in info:
  9.             date_time = info[36867]
  10.             return date_time.split()[0].replace(':', '-')
  11.         else:
  12.             return "Unknown"

  13. # 创建目录
  14. def create_directory(directory):
  15.     try:
  16.         os.makedirs(directory)
  17.     except FileExistsError:
  18.         pass

  19. # 移动图片到指定目录
  20. def move_image(file_path, directory):
  21.     if not os.path.exists(directory):
  22.         create_directory(directory)
  23.     shutil.move(file_path, os.path.join(directory, os.path.basename(file_path)))

  24. # 图片处理主函数
  25. def process_images(source_directory, target_directory):
  26.     for filename in os.listdir(source_directory):
  27.         if filename.endswith(".jpg") or filename.endswith(".png"):
  28.             file_path = os.path.join(source_directory, filename)
  29.             date = get_image_date(file_path)
  30.             target_path = os.path.join(target_directory, date)
  31.             move_image(file_path, target_path)

  32. # 设置源目录和目标目录
  33. source_directory = "/path/to/source/directory"
  34. target_directory = "/path/to/target/directory"

  35. # 处理图片
  36. process_images(source_directory, target_directory)
复制代码


请替换 `source_directory` 和 `target_directory` 变量的值为你实际的目录路径。此代码将遍历 `source_directory` 中的所有图片文件,根据其拍摄日期将其移动到以日期命名的子目录中,存储在 `target_directory` 中。

这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-6 00:56:02 | 显示全部楼层
要使用Python对图像按照日期(年月日)进行分类,你可以考虑以下几个步骤:

  • 读取图像文件的元数据(EXIF),来获取拍摄日期
  • 根据拍摄日期创建对应的文件夹结构(例如:年/月/日)
  • 将图像移动到对应的文件夹中

你可以参考下面这段代码进行修改 DIY:

  1. import os
  2. import shutil
  3. from PIL import Image
  4. from datetime import datetime

  5. # 图像所在目录
  6. image_dir = '/path/to/your/images'
  7. # 分类后图像存放的目录
  8. sorted_dir = '/path/to/sorted/images'

  9. # 确保分类后的目录存在
  10. if not os.path.exists(sorted_dir):
  11.     os.makedirs(sorted_dir)

  12. # 遍历图像目录中的所有文件
  13. for filename in os.listdir(image_dir):
  14.     if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif')):
  15.         # 构建完整的文件路径
  16.         file_path = os.path.join(image_dir, filename)
  17.         try:
  18.             # 打开图像文件
  19.             with Image.open(file_path) as img:
  20.                 # 从图像文件中获取EXIF信息
  21.                 exif_data = img._getexif()
  22.                 # 找到日期时间的EXIF标签
  23.                 date_time_original = exif_data.get(36867)
  24.                 if date_time_original:
  25.                     # 解析日期时间字符串
  26.                     date_taken = datetime.strptime(date_time_original, '%Y:%m:%d %H:%M:%S')
  27.                     # 构建日期目录结构(年/月/日)
  28.                     date_folder = os.path.join(sorted_dir, str(date_taken.year), str(date_taken.month).zfill(2), str(date_taken.day).zfill(2))
  29.                     # 如果日期目录不存在,则创建
  30.                     if not os.path.exists(date_folder):
  31.                         os.makedirs(date_folder)
  32.                     # 移动文件到相应的日期目录
  33.                     shutil.move(file_path, os.path.join(date_folder, filename))
  34.                 else:
  35.                     print(f"No EXIF date information found for {filename}")
  36.         except (IOError, KeyError, IndexError):
  37.             print(f"处理 {filename} 时出错!")

  38. print("搞定!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-21 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表