Je joue avec l'Amazon Rekognition. J'ai trouvé vraiment nice/easy library pour prendre une image de ma webcam qui fonctionne comme ceci:Conversion de BufferedImage en aws ... rekognition.model.Image
BufferedImage bufImg = webcam.getImage();
Je puis essayer de convertir cette BufferedImage
à un com.amazonaws.services.rekognition.model.Image
, qui est ce qui doit être soumis à la bibliothèque Rekognition. Voilà ce que je fais:
byte[] imgBytes = ((DataBufferByte) bufImg.getData().getDataBuffer()).getData();
ByteBuffer byteBuffer = ByteBuffer.wrap(imgBytes);
return new Image().withBytes(byteBuffer);
Cependant quand je tente de faire certains appels API pour Rekognition avec le Image
, je reçois une exception:
com.amazonaws.services.rekognition.model.InvalidImageFormatException: Invalid image encoding (Service: AmazonRekognition; Status Code: 400; Error Code: InvalidImageFormatException; Request ID: X)
L'état docs que le Java SDK base64 encoder automatiquement les octets. Dans le cas, quelque chose de bizarre se passait, j'ai essayé base64 codant pour les octets avant la conversion:
imgBytes = Base64.getEncoder().encode(imgBytes);
Cependant, la même exception s'ensuit.
Des idées? :)