使用 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 模式,最多一个小时,就能将细节调试到你都满意的程度,大大提升了我们的开发效率。
相关推荐
cpp加油站4 小时前
Anthropic断供Claude只是续集!AI编程的剿杀战,早被微软按下启动键
ai编程·claude·trae
it董卓4 小时前
Trae 产品体验:开启 AI 编程新旅程
trae
君若雅5 小时前
我如何借助 Trae 三分钟搞定开源项目中的隐藏 BUG
java·后端·trae
Goboy8 小时前
Trae 与颜色板生成器,为前端开发提供智能配色解决方案
ai编程·trae
Goboy8 小时前
Trae 开发文本大小写转换器,结合 MCP Server 自动部署
ai编程·trae
银空飞羽20 小时前
再学学MCP间接提示词注入
安全·mcp·trae
盏灯1 天前
Trae Agent —— 🥘 世纪难题,今晚吃啥?🍳
ai编程·trae
cpp加油站1 天前
发现宝藏:腾讯EdgeOne Pages & 掘金MCP,Trae内一键部署网页(玩转100个MCP系列第一弹)
ai编程·mcp·trae
cpp加油站1 天前
(保姆级教程)Trae中使用clangd插件实现c++代码函数列表、变量补全、代码跳转等功能
c++·ai编程·trae
康伯巴奇1 天前
关于我用AI10分钟做了一个网站这件事
trae