图像大小太小Azure Face API Android

图像大小太小Azure Face API Android,android,azure,microsoft-cognitive,face-api,Android,Azure,Microsoft Cognitive,Face Api,我正在尝试在android上使用Azure Face API。我正在从设备摄像头捕获图像,然后将其转换为输入流,发送到检测方法。我不断收到错误“com.microsoft.projectoxford.face.rest.ClientException:图像大小太小” 我查看了文档,图像大小为1.4Mb,在1Kb-4Mb范围内。我不明白它为什么不起作用 Bitmap bitmap = cameraKitImage.getBitmap(); ByteArrayOutputStream bos = n

我正在尝试在android上使用Azure Face API。我正在从设备摄像头捕获图像,然后将其转换为输入流,发送到检测方法。我不断收到错误“com.microsoft.projectoxford.face.rest.ClientException:图像大小太小”

我查看了文档,图像大小为1.4Mb,在1Kb-4Mb范围内。我不明白它为什么不起作用

Bitmap bitmap = cameraKitImage.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
bitmapdata = bos.toByteArray();

new FaceTask().execute(new ByteArrayInputStream(bitmapdata));

Face[] faces = faceServiceClient.detect(inputStreams[0], true, false, null);

不知何故,您的文件被压缩超过1Kb,或者实际大小已经很小。尝试将其保存在drawable或assets文件夹中的某个位置,并在输入流中打开它。

这似乎与我看到的其他编码示例相匹配。您是否已验证从CamerakiImage获取的图像数据是否有效?如果使用CompressFormat.JPEG,是否仍然失败?是的,我尝试使用JPEG格式。我甚至尝试缩放图像以增加大小。是的,我把图像转换成了一个实际的图像文件,并打开了它,它是正确的。保存到一个文件并检查图像真是太好了!我不知道API,只是想大声说出来,但是
inputStreams[0]
指的是什么?如果它是一个
ByteArrayInputStream
s数组,并且第一个/唯一的元素将由
FaceTask()填充。执行(…)
是否有计时问题?(各种位的命名表明
.execute()
可能发生在后台。inputStreams[0]是ByteArrayInputStream的实例。是的,此任务在后台使用AsyncTask执行。我以前在另一个应用程序中使用过检测方法,但从未遇到过此问题。我不确定是否存在计时问题,因此如何解决此问题。此问题仍然没有答案?有人找到解决方案吗?