2009-09-24 1 views
0

Я хочу сжать изображение с помощью кодировщика JPEG и вместо того, чтобы записывать его в файл, я хочу передать сжатые данные в другое приложение. Моя проблема в том, что я могу сжать данные, но не знаю, как получить данные сжатого изображения. Я использую этот код:Как получить сжатые данные изображения из кодировщика JPEG в Java

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

ответ

5

A 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(); 
2

Используйте ByteArrayOutputStream вместо FileOutputStream. Затем вы можете получить байты через toByteArray().

 Смежные вопросы

  • Нет связанных вопросов^_^