【问题标题】:How to get the compressed image data from JPEG encoder in Java如何从 Java 中的 JPEG 编码器获取压缩图像数据
【发布时间】:2009-09-24 11:32:32
【问题描述】:

我想使用 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();

【问题讨论】:

    标签: java io jpeg codec


    【解决方案1】:

    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() 获取字节。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-22
        • 1970-01-01
        • 2011-11-15
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多