使用 Trae 的 Builder 模式实现【自动批量处理图片:添加地理位置和时间信息】脚本

1. 前言

在日常工作中,我们经常需要处理大量图片,并为这些图片添加元数据信息。本文将介绍如何使用 Trae 的 Builder 模式开发一个批量处理图片的工具,自动为图片添加地理位置和时间信息。

2. 目标效果

3. excel 数据示例

4. 原始图片和 excel 的存放示例

屏幕截图

5. 实现分析

  1. 从Excel文件中读取图片的元数据信息(地址、经纬度、日期),完成自动批量添加;
  2. 将经纬度转换为度分秒格式;
  3. 从图片的EXIF信息中提取拍摄时间;
  4. 在图片底部添加包含地址、经纬度和时间信息的文本;
  5. 自动调整字体大小以适应图片宽度;
  6. 批量处理指定目录下的所有图片。

6. Builder 自动创建项目

注意

  1. 原理上如果你的提示词不能一次性描述清楚的话,我建议还是一步一步的进行,比如这里,我就是简单的描述了需求,虽然它创建了脚本,但是不符合我们的需求。
  2. 由于我这里要自己跑脚本进行测试代码,因此我将 add_text_to_images.py 文件改为 app.py 了,方便运行测试。

7. 读取 excel 数据

脚本文件已经创建,接下来就是读取 excel 中的数据以及处理数据。这里注意将 excel 中的数据和图片名进行匹配的匹配规则。必要时可以手动修改一下。

python pandas读取第一列的数据

8. 创建处理完成图片的存放文件夹

图片数据处理完成后,需要单独存放处理后的图片,因此对每一个文件夹的图片处理后都需要单独创建文件夹进行存放。

判断输出图片地址是否存在,不存在,就创建

9. 文字绘制位置描述

获取图片的宽高,将文字放在图片的左下角

到这一步时,基本的功能就完成了,但是对比目标图片的样式,还需要对 excel 中的数据进行处理,以及一些界面的细节优化,比如:文字阴影绘制,文字上下间距等。

10. 时间格式处理

由于 excel 中的时间只有年月日,因此需要获取图片的时分秒进行组装,使用 exifread 模块,读取图片的时分秒,如果读取失败就使用当前系统的时分秒。

提取文本中的年月日,再获取图片的拍摄日期的时分秒,最后返回 YYYY-mm-dd HH:MM:SS格式字符串

11. 经纬度格式处理

创建一个函数,将经纬度的度转换为度分秒

注意

这里需要注意的是 excel 中的经纬度字段不是单纯的数字,前边还有经度和纬度的汉字,需要对其进行处理。

12. 地址字段处理

地址需要判断文本开头是否是地址:,如果是就直接使用文本,不是就添加

到这里数据基本都处理完成了,但是会存在文字超出图片等问题,因此还需要对其进行处理。

13. 根据图片的宽高计算文字大小

根据图片的尺寸确定文字的大小,文字不超过图片宽度的三分之二

14. 文字的行间距

绘制文本的高度需要根据文本自身的高度计算,文本行间距是文本的一半

15. 文字距离图片的外边距

文字距离图片底部为文字自身的高度

16. 绘制文本阴影

绘制的文字周边有黑色的文本阴影

17. 最终效果

18. 执行过程

19. 总结

  1. 其实你对自己的提示词逻辑比较自信,那么这些提示词其实可以直接全部放在一起,它直接一次性生成,不过如果这中间某一部分数据处理存在问题,或者模块读取数据存在问题,那么就需要一个懂代码的人来真对错误的地方进行提示修改,所以我一般都是比较喜欢这种让 Builder 完成对应的某一部分,然后再进行下一步操作,这样就不会将错误集中到一起解决。
  2. 可以看到最后生成的效果和实例图除了字体不一样,其实总体来说已经很接近了,接近完美。
  3. 如果是我们自己开发这个脚本,在对对应的库比较熟悉的情况下,应该都需要一天的时间,但是现在 Trae 的 Builder 模式,最多一个小时,就能将细节调试到你都满意的程度,大大提升了我们的开发效率。
相关推荐
飞哥数智坊6 小时前
终端里用 Claude Code 太难受?我把它接进 TRAE,真香!
人工智能·claude·trae
程序员X小鹿10 小时前
Trae SOLO实战分享:3小时上线一个网站,全栈开发 + 自动部署,吊打Claude Code?(附保姆级教程)
ai编程·trae·solo
围巾哥萧尘10 小时前
TRAE技巧便利店第二期,教师智能点名网页系统,荣获第一名啦🧣
trae
豆包MarsCode13 小时前
TRAE MCP 实践: 智能人情账本系统开发
trae
兵临天下api15 小时前
1688 item_get_app 接口深度分析及 Python 实现
trae
兵临天下api16 小时前
1688 item_review 接口深度分析及 Python 实现
trae
用户40993225021216 小时前
如何在 FastAPI 中优雅地模拟多模块集成测试?
后端·ai编程·trae
用户4099322502122 天前
多环境配置切换机制能否让开发与生产无缝衔接?
后端·ai编程·trae
飞哥数智坊2 天前
一个 TRAE 巨好用的隐藏功能:任务完成通知
人工智能·trae
围巾哥萧尘2 天前
围巾哥萧尘:AI编程践行者的技术探索与实践🧣
trae