我正在使用 Amazon Rekognition。我找到了一个非常好的/简单的库来从我的网络摄像头中获取图像,它的工作原理是这样的:
BufferedImage bufImg = webcam.getImage();
然后,我尝试将其转换BufferedImage
为 a com.amazonaws.services.rekognition.model.Image
,这是必须提交给 Rekognition 库的内容。这就是我正在做的事情:
byte[] imgBytes = ((DataBufferByte) bufImg.getData().getDataBuffer()).getData();
ByteBuffer byteBuffer = ByteBuffer.wrap(imgBytes);
return new Image().withBytes(byteBuffer);
但是,当我尝试使用 对 Rekognition 进行一些 API 调用时Image
,我得到一个异常:
com.amazonaws.services.rekognition.model.InvalidImageFormatException: Invalid image encoding (Service: AmazonRekognition; Status Code: 400; Error Code: InvalidImageFormatException; Request ID: X)
文档声明 Java SDK 将自动对字节进行 base64 编码。万一发生了一些奇怪的事情,我尝试在转换之前对字节进行 base64 编码:
imgBytes = Base64.getEncoder().encode(imgBytes);
然而,同样的异常也随之而来。
有任何想法吗?:)