将BufferedImage转换为JPG字节数组

时间:2019-09-21 02:37:52

标签: java python python-imaging-library

我正在处理图像的处理平台,并且我的服务器当前正在使用pythons PIL.Image方法从客户端接受图像作为字节数组。我目前还使用Java作为前端,通过FrameGrab实用程序从视频中抓取图像帧并将其作为BufferedImage对象返回。我不明白的是我是如何从这个缓冲的图像对象转换为jpg字节数组并可以使用一些帮助的。'

我找到了写出

的示例

这是我代码的基本部分。

at Promise._settlePromises (/root/TG/node_modules/bluebird/js/release/promise.js:699:18)         

我的python服务器后端当前仅尝试使用上述库保存文件,如下所示:

            BufferedImage frame;

            for (int i = 1; i < 100; i++) { 
                try {
                    frame = AWTUtil.toBufferedImage(FrameGrab.getFrameAtSec(videoFile, i * .3));


                } catch (IOException ex) {
                    Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
                } catch (JCodecException ex) {
                    Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
                }
            }

1 个答案:

答案 0 :(得分:1)

简单方法:

public static byte[] toJpegBytes(BufferedImage image) throws IOException {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  ImageIO.write(image, "jpeg", baos);
  return baos.toByteArray();
}

如果您想进一步控制转换(压缩级别等),请参见Setting jpg compression level with ImageIO in Java