AI辅助开发实践:从Godot需求到自制切图工具的完整流程

缘起:一个具体的开发需求

最近在开发Godot桌面宠物项目时,遇到了一个看似简单却颇为棘手的问题:需要将一张包含猫的8个动作、每个动作4帧序列帧的图片合集,精确切分成8×4=32个小图片。

测试用的大图

传统方案与AI时代的思考

面对这个问题,传统解决方案有很多:

  • 使用Photoshop手动切分
  • 寻找在线图片处理工具
  • 下载专门的切图软件

然而,当我打开一个在线图片编辑工具时,发现它竟然没有批量切分图片的功能。这让我开始思考:在AI编程时代,我们是否还需要依赖现成工具?

理论上,最简单的解决方案是让AI助手编写一个Python脚本:

1
2
3
4
# 伪代码示例
def split_image(image_path, rows, cols):
# 读取图片,按行列切分,保存小图
pass

但这次,我决定在自己的AI对话平台上,开发一个完整的工具类网页应用。

构建个人AI工作台的完整流程

1. 平台搭建与项目管理

AI对话平台页面

首先在AI对话平台上创建工具类项目mytools,这是一个专门用于积累实用工具的平台。

工具类项目 mytools

2. 子应用创建与组织

创建子应用 pytools

创建Python工具子应用pytools,完善项目路径、端口管理等基础设施。

项目和应用卡片页面

3. AI对话驱动开发

AI对话界面

在AI对话界面中详细描述需求:

  • 输入:一张大图片
  • 参数:行数(8)、列数(4)
  • 输出:32张按顺序命名的小图片

4. 工具界面设计与实现

工具列表界面

开发了直观的切图工具界面,支持图片上传、参数设置和实时预览。

切分图片使用界面

开发过程中的挑战与协作

AI的局限性

在测试过程中,DeepSeek独自无法解决一些边界情况的bug,比如:

  • 图片尺寸不能被整除时的处理
  • 输出文件名的排序逻辑
  • 内存优化和性能问题

人机协作的价值

最终,通过我与Qoder的协作,成功解决了这些问题:

  • 我提供业务逻辑和测试用例
  • Qoder负责代码实现和调试
  • DeepSeek协助代码生成和优化建议

成果展示

最终切出来的很多小图

成功将大图精确切分成32张小图,每张图片都按照动作_帧数的格式命名,完美满足Godot桌面宠物的序列帧需求。

技术实现要点

核心算法

1
2
3
4
5
6
7
8
9
10
11
12
// 伪代码:图片切分核心逻辑
function splitImage(image, rows, cols) {
const tileWidth = image.width / cols;
const tileHeight = image.height / rows;

for (let row = 0; row < rows; row++) {
for (let col = 0; col < cols; col++) {
const tile = createTile(image, col, row, tileWidth, tileHeight);
saveTile(tile, `action_${row}_frame_${col}.png`);
}
}
}

工程化实践

  • 使用Git进行版本控制,便于代码审查和回滚
  • 实现Make命令自动化构建和部署
  • 完善的错误处理和用户反馈机制

经验总结与思考

1. 工具积累的重要性

一点点根据自己的工作需要积累工具库,能够显著提升开发效率。这次开发的切图工具不仅解决了当前问题,未来遇到类似需求时也能快速复用。

2. AI工作台的价值

搭建个人AI工作台让开发过程更加流畅:

  • 统一的项目管理
  • 标准化的开发流程
  • 可复用的组件和模板

3. AI的工程化局限

DeepSeek等AI模型在解决具体技术问题时表现出色,但在工程化设计方面仍有不足:

  • 缺乏整体架构思维
  • 对边界情况考虑不周
  • 调试能力有限

4. 人机协作的最优模式

AI生成 + 人工审查 + 协作调试是目前最高效的开发模式。AI负责繁重的代码编写,人类负责业务逻辑和工程质量把控。

未来展望

这次经历让我更加坚定了两个方向:

  1. 持续完善AI辅助工具:开发更强大的AI工作台,提升开发效率
  2. 保持技术独立性:在享受AI便利的同时,保持核心技术的掌握能力

虽然调试好的工具最终可能成为大模型的训练数据,但在这个过程中积累的经验和思维方式,才是开发者最宝贵的财富。


工具的价值不在于它有多复杂,而在于它能否在关键时刻解决实际问题。在AI时代,善用工具、创造工具的能力,将是我们最重要的竞争力之一。