Microsoft Face API 中“解码错误,图像格式不受支持”

2023-12-09

我正在尝试使用 Microsoft Face API。为此,我有 Microsoft 提供的以下代码作为示例(在本页末尾)https://dev.projectoxford.ai/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236):

HttpClient httpclient = HttpClients.createDefault();

try {
    URIBuilder builder = new URIBuilder("https://api.projectoxford.ai/face/v1.0/detect");

    builder.setParameter("returnFaceId", "false");
    builder.setParameter("returnFaceLandmarks", "false");
    builder.setParameter("returnFaceAttributes", "age,gender");

    URI uri = builder.build();
    HttpPost request = new HttpPost(uri);
    request.setHeader("Content-Type", "application/octet-stream");
    request.setHeader("Ocp-Apim-Subscription-Key", "...");

    String body = Base64.encodeBase64String(img);

    StringEntity reqEntity = new StringEntity(body);
    request.setEntity(reqEntity);

    HttpResponse response = httpclient.execute(request);
    HttpEntity entity = response.getEntity();

    if (entity != null) {
            System.out.println(EntityUtils.toString(entity));
            return JsonParser.parse(EntityUtils.toString(entity));
    }
} catch (URISyntaxException | IOException | ParseException e) {
        System.out.println(e.getMessage());
}

return null;

但我收到以下错误:

{"error":{"code":"InvalidImage","message":"Decoding error, image format unsupported."}}

我用于测试的图像是这样的:http://www.huntresearchgroup.org.uk/images/group/group_photo_2010.jpg(在网上快速搜索找到的)

它尊重 Microsoft 设置的所有要求、大小和格式...如果我在网站中使用它,它就可以工作https://www.projectoxford.ai/demo/face#detection

The String body从我的字节数组转换为base64中的字符串也可以,我在这个网站上测试它:http://codebeautify.org/base64-to-image-converter

错误消息很简单,但我看不出我错在哪里。任何人都可能知道问题出在哪里?

UPDATE

变量img:

img = Files.readAllBytes(Paths.get(imgPath));

我设法发现了问题......而不是:

String body = Base64.encodeBase64String(img);
StringEntity reqEntity = new StringEntity(body);
request.setEntity(reqEntity);

我需要做:

ByteArrayEntity reqEntity = new ByteArrayEntity(img, ContentType.APPLICATION_OCTET_STREAM);
request.setEntity(reqEntity);

我认为文档已经过时了......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Face API 中“解码错误,图像格式不受支持” 的相关文章

随机推荐

  • 字典或 If 语句、Jython

    我现在正在编写一个脚本 它将使用 dom4j 从 HTML 中获取某些信息 由于 Python Jython 没有原生的switch声明我决定使用一大堆if调用适当方法的语句 如下所示 if type extractTitle extrac
  • Pandas 替换中的严格正则表达式

    我需要写一个严格的regular expression替换我的某些值pandas数据框 这是解决我发布的问题后提出的问题here 问题是 replace idsToReplace regex True 并不严格 因此 如果 iDsToRep
  • 仅为我的 Web 应用程序配置 Azure SQL 数据库防火墙

    We use Azure 网络应用程序 with Azure SQL并希望通过配置使此设置更加安全数据库防火墙只允许来自特定网络应用程序的连接 而不是Azure 中的任何服务 如何限制仅连接到我的 Azure 服务 假设您有一个 IP 地址
  • 错误消息:模型未选择特定于语言的资源文件

    我想用西班牙语显示模型错误消息 并且我已在资源文件中定义了这些字符串 我使用 razor 语法对页面上的其他字符串执行了相同的操作 但未选取 ViewModel 注释中的字符串 它实际上是选择默认值 英语 所以我的猜测是可能未检测到语言 文
  • Hibernate 复合密钥 ID 生成器

    我的实体如下 我的数据模型强制执行以下操作 并且我无法更改引用完整性 所以我被复合键困住了 我想自动生成 使用一些生成器来生成 orderId 是的 我已阅读以下内容 http docs jboss org hibernate annota
  • PHP 中判断 URL 是否存在的最快方法是什么?

    我需要创建一个函数 该函数返回 URL 是否可访问或有效 我目前正在使用类似以下内容来确定有效的网址 static public function urlExists url fp fopen url r if fp return true
  • Mysql 5.7.20:无法从字符集“二进制”的字符串创建 JSON 值

    当我导入带有 JSON 列的表的 SQL 文件时 我遇到了这个问题 数据库有 编码 utf8mb4 整理 utf8mb4 unicode ci 这是带有 json 列的表 CREATE TABLE tracking data id int
  • 如何使用 strtotime 和 date 获取相对于今天的上个月和上一年?

    我需要获取相对于当前日期的上个月和上一年 但是 请参阅以下示例 Today is 2011 03 30 echo date Y m d strtotime last month Output 2011 03 02 这种行为是可以理解的 在某
  • Python/PyQt4:如何找到显示器的尺寸(以英寸为单位)?

    我试图找到显示器的水平宽度 以英寸或厘米为单位 不是像素 来制作一个小型 标尺 程序 DPI 也可以工作 我正在使用 PyQt4 尝试使用 QDesktopWidget 的 width 和 height 分别获取宽度和高度 类参考位于QDe
  • jQuery 冒号选择器

    在 jQuery 中有一些冒号选择器 例如 上一个 下一个 最后一个 我的问题是 它们真的是 jQuery 的一部分吗 因为它们实际上用在 DOM 元素上 我们似乎在 jQuery 中也有等效的方法prev next last 有两种不同方
  • JavaFX - 通过 GridPane 上的 OnClick 获取索引行和索引列 [重复]

    这个问题在这里已经有答案了 我需要获取名为 myGrid 的 GridPane 上指定点击的索引 如果我从我的坐标中放置一块 如下所示 它就会起作用 例如 myGrid add new ImageView othello images wh
  • 如何动态传递if语句的条件

    我遇到的情况是 我将在变量中获取比较字符串 并且我想在 IF 中使用该变量 xyz abc lt 200 Dummy Dynamic Text if xyz It should execute like if abc lt 200 echo
  • 谷歌应用程序中的rmi错误

    当我使用以下行时 我没有收到错误 FileItemIterator it servletFileUpload getItemIterator request 当我使用以下行时我得到它 List fileItemsList servletFi
  • IIS 中的应用程序池标识和 SQL Server 的集成安全性

    如果我有一个使用模拟的 ASP NET Web 应用程序和一个集成安全性 true 的 SQL Server 连接字符串 那么该应用程序的 IIS 应用程序池的标识是否起作用 是否需要将身份设置为某个特定用户 本地系统 网络服务或域用户 这
  • 禁用 ASP.net 树视图复选框

    你们如何有条件地禁用 ASP 树视图中的复选框 例如 如果应用程序用户没有特定权限 请禁用权限树视图中的该权限条目复选框 这就是我正在寻找的内容 这是 winform 应用程序中的等效项 文本灰显的复选框被禁用 我看到了其他解决方案 其中复
  • 当达到最大并发 HTTP 请求限制时,浏览器级别会发生什么?

    我知道不同的浏览器可以处理相同主机名的并发连接数不同 但是当达到该限制时 新请求到底会发生什么 它会自动等待并稍后重试 还是我需要做一些事情来帮助完成此过程 具体来说 如果这是一个XMLHttpRequest通过 JavaScript 执行
  • 熊猫数据框来字典,同时保留重复的行

    我有一个如下所示的数据框 kenteken status code 0 XYZ A 123 1 XYZ B 456 2 ABC C 789 我想将它转换为字典中的字典 如下所示 XYZ code 123 status A code 456
  • JavaScript 最终方法

    javascript中的方法可以是final的吗 如何避免它被子类覆盖 从传统意义上讲 不 您不能拥有私有 受保护的方法或阻止它们被覆盖 然而 您可以做的是将方法封装在一个范围内 然后简单地不公开它们 function foo functi
  • 没有布局模板或 JSON 视图的 Meteor Iron-Router

    使用 Meteor Iron Router 我怎样才能either将数据呈现为 JSON 或只是将其显示为 原始 没有布局模板 本质上我希望能够做类似的事情 this route rawdata path raw collection la
  • Microsoft Face API 中“解码错误,图像格式不受支持”

    我正在尝试使用 Microsoft Face API 为此 我有 Microsoft 提供的以下代码作为示例 在本页末尾 https dev projectoxford ai docs services 563879b61984550e40