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

使用OpenAI PHP库调用DALL-E遇格式错误:如何提供RGBA PNG?

问题描述

在DALL-E示例项目中引入Orhanerday\OpenAi库后,调用图片编辑接口时出现错误:

Invalid input image - format must be in ['RGBA'], got RGB.

使用的PHP代码如下:

<?php

require __DIR__ . '/vendor/autoload.php'; // 若使用PHP框架可移除该行

use Orhanerday\OpenAi\OpenAi;

$open_ai_key = getenv("OPENAIKEY");
$open_ai = new OpenAi($open_ai_key);
 
$otter = curl_file_create("C:\Users\dotor\OneDrive\Desktop\dalle-examples\otter.png");
$mask = curl_file_create("C:\Users\dotor\OneDrive\Desktop\dalle-examples\mask.png");

$result = $open_ai->imageEdit([
    "image" => $otter,
    "mask" => $mask,
    "prompt" => "A cute baby sea otter wearing a beret",
    "n" => 2,
    "size" => "256x256",
]);

var_dump($result);

使用的PNG文件:

  • otter.png:otter.png
  • mask.png:mask.png

需要解决错误实现无错误运行,同时了解什么是RGBA PNG文件,以及如何正确提供符合要求的图片。

什么是RGBA PNG文件

PNG格式图片按颜色通道分为不同类型:

  • RGB:仅包含红(Red)、绿(Green)、蓝(Blue)三个颜色通道,只记录色彩信息。
  • RGBA:在RGB基础上新增Alpha通道,该通道用于控制图片透明度(取值范围0-255,从完全透明到完全不透明)。DALL-E图片编辑接口要求图片必须包含Alpha通道,这样才能正确识别可编辑的透明区域(尤其是mask图)。
如何正确提供符合要求的图片

1. 将现有PNG转换为RGBA格式

可通过图形工具或命令行工具完成转换:

方法1:图形界面工具(Photoshop、GIMP、Paint.net等)

  • 打开目标图片,导出/保存时选择PNG格式,勾选“保留Alpha通道”选项。
  • 对于mask图,需确保透明区域通过Alpha通道实现,而非白色或其他颜色(DALL-E会将mask图的透明区域视为可编辑区域)。

方法2:命令行工具(ImageMagick)

安装ImageMagick后,执行以下命令:

# 转换otter.png为RGBA格式
convert otter.png -alpha on otter_rgba.png

# 转换mask.png为RGBA格式
convert mask.png -alpha on mask_rgba.png

2. 修改代码使用转换后的图片

将代码中的文件路径替换为转换后的RGBA格式图片路径:

$otter = curl_file_create("C:\Users\dotor\OneDrive\Desktop\dalle-examples\otter_rgba.png");
$mask = curl_file_create("C:\Users\dotor\OneDrive\Desktop\dalle-examples\mask_rgba.png");

额外注意事项

  • mask图的尺寸必须与原始图片完全一致,否则会触发错误。
  • 确保图片文件无损坏,且文件路径正确(Windows路径可使用正斜杠/避免转义问题)。

内容的提问来源于stack exchange,提问作者ORHAN ERDAY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:10:33