0

JPEG エンコーダーを使用して画像を圧縮し、ファイルに書き込む代わりに、圧縮データを別のアプリケーションに渡したいと考えています。私の問題は、データを圧縮できるが、その圧縮された画像データを取得する方法がわからないことです。私はこのコードを使用しています:

 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();
4

2 に答える 2

5

ByteArrayOutputStreamを使用すると、バイトにアクセスできます。

 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();
于 2009-09-24T11:47:07.410 に答える
2

ByteArrayOutputStreamの代わりに a を使用しFileOutputStreamます。次に、を介してバイトを取得できますtoByteArray()

于 2009-09-24T11:43:03.627 に答える