You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量翻译游戏图片遇认证错误,求Google Cloud配置分步教程

批量翻译游戏图片解决方案

一、需启用的Google Cloud API

  • Cloud Translation API:负责翻译提取出的文字
  • Cloud Vision API:负责识别图片中的日文文字(原代码错误调用了不存在的translate_image方法,正确流程需要先识别文字再翻译)

二、创建服务账号与配置凭证(分步操作)

  1. 登录Google Cloud控制台,进入你的项目
  2. 左侧导航栏选择「IAM与管理员」→「服务账号」
  3. 点击「创建服务账号」,填写名称和描述后完成创建
  4. 在服务账号列表中找到刚创建的账号,点击「编辑」→「添加权限」
    • 搜索并添加「Cloud Translation API 用户」权限
    • 搜索并添加「Cloud Vision API 用户」权限
    • 点击「保存」
  5. 切换到该服务账号的「密钥」标签页,点击「添加密钥」→「创建新密钥」
  6. 选择「JSON」格式,点击「创建」,密钥文件会自动下载到本地

三、本地凭证配置

  1. 将下载的JSON密钥文件放到项目目录或其他安全路径
  2. 设置环境变量:
    • Windows(命令提示符):set GOOGLE_APPLICATION_CREDENTIALS="你的密钥文件完整路径.json"
    • Linux/macOS(终端):export GOOGLE_APPLICATION_CREDENTIALS="你的密钥文件完整路径.json"

四、可运行的Python脚本

以下脚本实现「图片文字识别→翻译→顶部添加黑条+翻译文字」的完整流程:

import os
from google.cloud import vision_v1 as vision
from google.cloud import translate_v2 as translate
from PIL import Image, ImageDraw, ImageFont

def process_single_image(input_path, output_path, target_lang='en'):
    # 1. 识别图片中的文字
    vision_client = vision.ImageAnnotatorClient()
    with open(input_path, 'rb') as img_file:
        img_content = img_file.read()
    image = vision.Image(content=img_content)
    text_response = vision_client.text_detection(image=image)
    
    # 无文字时直接复制原图片
    if not text_response.text_annotations:
        print(f"{input_path} 未识别到文字,直接复制原文件")
        with open(input_path, 'rb') as src, open(output_path, 'wb') as dst:
            dst.write(src.read())
        return
    
    original_text = text_response.text_annotations[0].description
    
    # 2. 翻译文字
    translate_client = translate.Client()
    translate_result = translate_client.translate(original_text, target_language=target_lang)
    translated_text = translate_result['translatedText']
    
    # 3. 给图片添加顶部黑条并写入翻译文字
    with Image.open(input_path) as img:
        bar_height = 40  # 黑条高度,可根据需求调整
        # 创建带黑条的新图片
        new_img = Image.new('RGB', (img.width, img.height + bar_height), 'black')
        new_img.paste(img, (0, bar_height))
        
        # 绘制文字
        draw = ImageDraw.Draw(new_img)
        # 加载字体,可替换为本地可用的字体路径
        try:
            font = ImageFont.truetype("arial.ttf", 24)
        except IOError:
            font = ImageFont.load_default()
        
        # 文字居中显示
        text_width = draw.textlength(translated_text, font=font)
        text_x = (new_img.width - text_width) // 2
        text_y = (bar_height - 24) // 2
        draw.text((text_x, text_y), translated_text, fill='white', font=font)
        
        # 保存处理后的图片
        new_img.save(output_path)

def batch_process_images(input_dir, output_dir, target_lang='en'):
    # 创建输出目录(不存在则自动创建)
    os.makedirs(output_dir, exist_ok=True)
    # 支持的图片格式
    supported_extensions = ('.png', '.jpg', '.jpeg', '.bmp')
    
    for filename in os.listdir(input_dir):
        if filename.lower().endswith(supported_extensions):
            input_path = os.path.join(input_dir, filename)
            output_path = os.path.join(output_dir, filename)
            print(f"正在处理:{filename}")
            process_single_image(input_path, output_path, target_lang)

if __name__ == "__main__":
    # 替换为你的输入/输出目录路径
    INPUT_DIR = "path/to/your/input/images"
    OUTPUT_DIR = "path/to/your/output/images"
    batch_process_images(INPUT_DIR, OUTPUT_DIR)

五、依赖安装

运行脚本前需安装以下依赖包:

pip install google-cloud-vision google-cloud-translate pillow

内容的提问来源于stack exchange,提问作者Johnny Guides

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:45:16