游乐游手机版
首页/AI热点日报/热点详情

Recraft AI图片Base64编码错误解决与上传格式教程

类型:热点整理2026-06-13
Base64字符串预处理不当是RecraftAI报错最主要原因,会导致接口调用失败。需要正确剥离dataURL前缀,将空格、换行等非法字符替换为+或 ,并补全等号使长度为4的倍数。仅接受JPEG和PNG格式,解码后体积不超过8MB,单边像素不超过16384。

Recraft AI图像上传失败或生成报错,往往源于Base64编码预处理环节不规范。后端解码器对数据格式有严格标准:必须采用标准Base64字符集、字符串长度为4的倍数、且不得包含MIME类型前缀等额外信息。只要准确处理这些核心约束,绝大多数“非法字符”或“无效图像数据”问题都能得到解决。

免费看电影的app☜☜☜☜☜点击保存

当您遇到“Invalid image data”或“Illegal base64 character”等错误提示时,通常并非原始图片文件损坏,而是前端传递的Base64字符串格式不符合Recraft API的解析规范。下面将详细介绍几种常见的预处理解决方案,帮助您顺利通过验证。

移除Data URL前缀,保留纯净Base64编码

Recraft后端解码器不接收完整的Data URL字符串(例如以data:image/png;base64,开头的格式)。直接提交此类字符串,前缀中的非Base64字符会立即触发错误。

处理方法分为两步:首先,使用英文逗号,分割字符串,仅保留逗号后的部分。其次,检查截取后的字符串末尾是否存在多余的空格、换行符或URL编码字符(如%2B%3D),务必将其清除或使用decodeURIComponent()进行解码还原。核心原则是:Recraft API仅接受不携带任何MIME类型头的“裸”Base64编码字符串,忽略此步骤将导致高频报错。

修正非法字符:处理加号、下划线与空格

在数据传输或前端库(如FileReader.readAsDataURL)处理过程中,可能引入非标准Base64字符。Recraft的标准解码器仅识别A-Z、a-z、0-9、+、/、=这65个字符,任何其他字符都会被视为非法。

常用修复方案有两种:一是替换URL安全变体字符,将-替换为+,将_替换为/,并补齐必要的等号。二是使用正则表达式进行清洗:replace(/[^A-Za-z0-9+/=]/g, ''),直接移除所有非Base64字符。此方法对清除零宽空格(U+200B)等不可见字符特别有效。但请注意,若字符串中已混入中文标点等明显乱码,则说明编码已损坏,建议重新获取原始图像并编码。

重要提醒:切勿对Base64字符串使用encodeURIComponent()进行二次编码,Recraft不支持此类双重编码数据。

补全等号,确保字符串长度为4的倍数

Base64编码规范要求字符串长度必须是4的整数倍,不足部分需用等号=填充。否则,解码器将抛出binascii.Error或返回Illegal base64 character错误。

计算方式如下:用当前字符串长度除以4,根据余数补全等号——余1补3个=,余2补2个=,余3补1个=。例如,SGVsbG8=(长度8)符合规范;而SGVsb(长度5,余1)需补全为SGVsb===。此步骤虽然简单,但补全数量错误可能导致解码后图像全黑或直接报错,请务必按计算规则精准操作

确认图像格式与文件尺寸符合平台限制

Recraft目前仅支持JPEG和PNG两种主流图片格式,且原始文件大小(解码后的二进制体积)不得超过8MB。上传前建议使用图像处理工具(如Photoshop“导出为”功能,或ImageMagick命令magick convert input.jpg -quality 85 output.jpg)将文件压缩至7.5MB以下再行编码提交。

图像宽高比不受限制,但单边像素不可超过16384。超过此限制会导致Recraft静默裁剪,影响最终构图效果。此外,请勿尝试提交WebP或AVIF等格式转换的Base64数据,Recraft会直接返回Unsupported image type错误。

来源:https://www.php.cn/faq/2640542.html?uid=1503042

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。