0

私はAmazon Rekognitionで遊んでいます。私はその後、Rekognitionライブラリに何を提出する必要がありますされcom.amazonaws.services.rekognition.model.Image、このBufferedImageを変換しようとしているBufferedImageをawsに変換します。rekognition.model.Image

BufferedImage bufImg = webcam.getImage(); 

:私はこのように動作します私のウェブカメラから画像を取るために本当にnice/easy libraryを発見しました。私がしようとするとImageでRekognitionするために、いくつかのAPI呼び出しを行う際に

byte[] imgBytes = ((DataBufferByte) bufImg.getData().getDataBuffer()).getData(); 
ByteBuffer byteBuffer = ByteBuffer.wrap(imgBytes); 
return new Image().withBytes(byteBuffer); 

はしかし、私は例外を取得:これは私がやっているものです

com.amazonaws.services.rekognition.model.InvalidImageFormatException: Invalid image encoding (Service: AmazonRekognition; Status Code: 400; Error Code: InvalidImageFormatException; Request ID: X) 

docs状態のJava SDKがすることバイトを自動的にbase64でエンコードします。奇妙なことが起こった場合、変換する前にバイト64エンコードを試みました。

imgBytes = Base64.getEncoder().encode(imgBytes); 

しかし、同じ例外が続いています。

アイデア? :)

答えて

4

イメージをJPG(RekognitionはPNGまたはJPG形式をサポートしています)にエンコードしようとしましたが、問題を解決しました。

BufferedImage bufImg = webcam.getImage(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ImageIO.write(bufImg, "jpg", baos); 
ByteBuffer byteBuffer = ByteBuffer.wrap(baos.toByteArray()); 
return new Image().withBytes(byteBuffer); 
関連する問題