Comment obtenir les données d'images compressées de l'encodeur JPEG en Java

voix
0

Je veux compresser une image en utilisant l'encodeur JPEG et au lieu de l'écrire dans un fichier que je veux transmettre les données compressées à une autre application. Mon problème est que je peux compresser les données, mais ne sais pas comment obtenir que les données d'images compressées. J'utilise ce code:

 out = new FileOutputStream ( filename );
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder ( out );
 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam ( bi );
 param.setQuality ( 0.3f, false );  
 encoder.setJPEGEncodeParam ( param );
 encoder.encode ( bi );
 out.close();
Créé 24/09/2009 à 12:32
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
5

Un ByteArrayOutputStream vous donnera accès aux octets.

 ByteArrayOutputStream out = new ByteArrayOutputStream (  );
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder ( out );
 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam ( bi);
 param.setQuality ( 0.3f, false );  
 encoder.setJPEGEncodeParam ( param );
 encoder.encode (bi);
 out.close(); // a no-op on ByteArrayOutputStream
 byte[] data = out.toByteArray();
Créé 24/09/2009 à 12:47
source utilisateur

voix
2

Utilisez un au ByteArrayOutputStreamlieu d'un FileOutputStream. Ensuite, vous pouvez obtenir les octets via toByteArray().

Créé 24/09/2009 à 12:43
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more