status_code=400, Unable to process input image. Please retry or report in https:...

2026年06月17日 21:26 23.16 秒 success

错误信息

status_code=400, Unable to process input image. Please retry or report in https://***.google/***/*** (request id: 202606172126003029879633L8oskx)

AI 解决方案

🔍 错误分析

1. 🌐 错误翻译

原文:status_code=400, Unable to process image. Please retry or report in https://***.google/***/***
译文:状态码=400,无法处理输入图像。请重试或在指定链接报告此问题

2. 🎯 原因分析

HTTP 400 Bad Request 表示请求参数有误。结合 Unable to process input image,可能原因包括:

可能原因说明
❌ 图片格式不支持API 不支持该图片格式(如 .webp.bmp 等)
❌ 图片损坏上传的图片文件损坏或不完整
❌ 图片过大超出 API 允许的最大尺寸限制
❌ Base64 编码错误图片编码格式不正确或包含非法字符
❌ 空白/无效图片图片内容为空或分辨率过低

3. 💡 解决方案

import base64
from PIL import Image
import io

def validate_and_fix_image(image_path):
    """验证并修复图片"""
    
    # 1. 检查文件是否存在且大小合理
    import os
    file_size = os.path.getsize(image_path)
    print(f"文件大小: {file_size / 1024 / 1024:.2f} MB")
    
    # 2. 使用 Pillow 打开并验证图片
    with Image.open(image_path) as img:
        print(f"图片格式: {img.format}")
        print(f"图片尺寸: {img.size}")
        print(f"色彩模式: {img.mode}")
        
        # 3. 转换为支持的格式 (JPEG/PNG)
        if img.mode == 'RGBA':
            img = img.convert('RGB')  # 移除透明通道
        
        # 4. 保存为标准 JPEG 格式
        buffer = io.BytesIO()
        img.save(buffer, format='JPEG', quality=95)
        return buffer.getvalue()

# 使用示例
image_data = validate_and_fix_image('your_image.jpg')
base64_string = base64.b64encode(image_data).decode('utf-8')

4. 🛡️ 预防措施

  • 统一图片预处理:在发送请求前,统一将图片转换为 JPEGPNG 格式,并限制分辨率(建议 1024x1024 以内)
  • 添加重试机制:遇到 400 错误时,可尝试重新处理图片后重试:

  • import time
    import requests
    
    def call_api_with_retry(url, image_data, max_retries=3):
        for attempt in range(max_retries):
            response = requests.post(url, files={'image': image_data})
            if response.status_code != 400:
                return response
            time.sleep(1)  # 等待后重试
        return response  # 返回最后一次响应