AI编程神器:10分钟用CodeBuddy打造精美电子名片(零基础教程)

139 阅读5分钟

本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴

📚 前言

在AI编程时代,如何利用智能工具提升开发效率成为每位开发者必备的技能。本教程将带领大家通过CodeBuddy实现一个精美的电子名片生成系统,无需复杂的设计知识,只需几行代码即可完成专业级名片制作。

本项目特别适合Python初学者,通过实践掌握以下技能:

  • Excel数据读取与处理
  • PIL图像处理基础
  • 中文字体渲染技巧
  • 异常处理最佳实践

🛠️ 项目准备

所需材料

  1. 一个包含人员信息的Excel文件,格式如下:
    • 第一列:姓名
    • 第二列:昵称
    • 第三列:职业

Excel文件示例

环境要求

  • Python 3.6+
  • 必要的Python库:pandas, Pillow, openpyxl

🚀 项目实战

步骤一:构思需求与提示词设计

注意在CodeBuddy当前版本3.1.16中还无法直接添加xlsx类型文件,因此我们需要设计更加详细的提示词。以下是我精心设计的提示词:

我需要一个生成名片信息的py文件, 名片信息在excel文件中,要求如下:
1. 每一行生成一个名片信息
2.名片布局要美观
3.excel 文件中第一列是姓名, 第二列是昵称,第三列是职业

💡 提示技巧:在使用AI编程助手时,即使无法上传文件,也可以通过详细描述文件结构来获得精准代码。

CodeBuddy提示词输入

步骤二:代码生成与调整

将CodeBuddy生成的代码复制到开发环境中(如PyCharm)。由于我们没有指定Excel文件名称,需要进行一些调整:

  1. 修改Excel文件读取路径为实际文件名
  2. 确认输出目录设置
  3. 检查字体路径配置

代码调整

步骤三:错误处理与AI辅助调试

初次运行时遇到了错误,这是编程过程中的常态。我们可以将错误信息提交给CodeBuddy进行分析和修复:

错误提交给AI

CodeBuddy迅速分析出问题所在并提供了修复方案:

AI提供的修复方案

步骤四:成功运行与效果展示

应用AI提供的修复方案后,程序成功运行,生成了精美的电子名片:

程序运行成功

生成的名片效果图:

名片效果展示

💻 完整代码

import pandas as pd
from PIL import Image, ImageDraw, ImageFont
import os


def generate_business_card(name, nickname, profession, output_path):
    # 名片尺寸 (单位:像素)
    width = 800
    height = 500

    # 创建空白名片
    card = Image.new('RGB', (width, height), color=(255, 255, 255))
    draw = ImageDraw.Draw(card)

    # 尝试加载中文字体
    try:
        # 使用绝对路径或确保字体文件在正确位置
        font_path = "../字体家AI造字春风.ttf"  # 或者使用完整路径如 "/System/Library/Fonts/STHeiti Medium.ttc"
        title_font = ImageFont.truetype(font_path, 60)
        name_font = ImageFont.truetype(font_path, 48)
        info_font = ImageFont.truetype(font_path, 36)
    except Exception as e:
        print(f"字体加载失败: {e}, 将使用默认字体")
        # 使用Pillow的默认字体(不支持中文)
        title_font = ImageFont.load_default(size=60)
        name_font = ImageFont.load_default(size=48)
        info_font = ImageFont.load_default(size=36)

    # 绘制名片背景装饰
    draw.rectangle([(0, 0), (width, 100)], fill=(70, 130, 180))

    # 添加标题 - 使用更兼容的文本绘制方式
    try:
        draw.text((width // 2, 50), "名 片", font=title_font, fill=(255, 255, 255), anchor="mm")
    except:
        # 如果中文显示失败,使用英文
        draw.text((width // 2, 50), "BUSINESS CARD", font=title_font, fill=(255, 255, 255), anchor="mm")

    # 添加姓名
    draw.text((width // 2, 180), name, font=name_font, fill=(0, 0, 0), anchor="mm")

    # 添加昵称
    if nickname and str(nickname).lower() != 'nan':
        draw.text((width // 2, 250), f"昵称: {nickname}", font=info_font, fill=(100, 100, 100), anchor="mm")

    # 添加职业
    draw.text((width // 2, 320), f"职业: {profession}", font=info_font, fill=(70, 130, 180), anchor="mm")

    # 添加底部装饰线
    draw.line([(width // 4, height - 50), (3 * width // 4, height - 50)], fill=(70, 130, 180), width=3)

    # 保存名片
    card.save(output_path)


def main():
    # 检查并创建输出目录
    output_dir = "business_cards"
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 读取Excel文件
    try:
        # 使用openpyxl引擎读取Excel文件
        df = pd.read_excel("名单.xlsx", header=0, engine='openpyxl')
    except FileNotFoundError:
        print("错误: 找不到 business_cards.xlsx 文件")
        print("请确保当前目录下有一个包含名片信息的Excel文件")
        print("Excel文件格式: 第一列姓名, 第二列昵称, 第三列职业")
        return
    except Exception as e:
        print(f"读取Excel文件时出错: {e}")
        return

    # 处理每一行数据
    for index, row in df.iterrows():
        name = str(row[0]) if pd.notna(row[0]) else "未提供"
        nickname = str(row[1]) if len(row) > 1 and pd.notna(row[1]) else ""
        profession = str(row[2]) if len(row) > 2 and pd.notna(row[2]) else "未提供"

        # 生成名片
        output_path = os.path.join(output_dir, f"{name}_名片.png")
        generate_business_card(name, nickname, profession, output_path)
        print(f"已生成: {output_path}")

    print("\n所有名片已生成完毕!")


if __name__ == "__main__":
    # 确保安装了所有依赖
    try:
        main()
    except Exception as e:
        print(f"程序运行时出错: {e}")
        print("请确保已安装所有依赖: pip install pandas pillow openpyxl")

📝 项目要点与技术分析

  1. 数据处理:使用pandas库读取Excel文件,支持各种格式的表格数据

  2. 图像处理:利用PIL库创建自定义图像,实现名片布局和设计

  3. 异常处理:代码中包含完善的异常处理机制,提高程序健壮性

  4. 中文支持:解决了中文字体显示问题,提供了备选方案

🔍 总结与反思

本项目展示了AI编程助手在实际开发中的强大能力。通过CodeBuddy,我们快速实现了一个功能完整的名片生成系统。在开发过程中有一个值得注意的经验:务必仔细阅读AI给出的全部建议。我在实践中忽略了部分建议(如字体路径设置),导致了一些可避免的错误。

CodeBuddy建议