将BuffereImage转换为JPG字节数组

2024-10-01 04:47:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个图像处理平台,我的服务器目前正在使用pythons从客户机接收作为字节数组的图像像素图像方法。我目前还使用Java作为前端,使用FrameGrab实用程序从视频中获取图像帧,并将其作为BuffereImage对象返回。我不明白的是,我是如何从这个缓冲图像对象转换成jpg字节数组的,需要一些帮助

我找到了一个写出

这是我代码的基本部分。你知道吗

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

我的python服务器后端当前正试图用前面提到的库保存文件,如下所示:

        img = Image.open(io.BytesIO(data))
        img.save('test.jpg')

Tags: 对象图像服务器字节数组loggerframeclass
1条回答
网友
1楼 · 发布于 2024-10-01 04:47:12

简单方法:

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。你知道吗

相关问题 更多 >