在没有磁盘写入的java中编码jpeg

时间:2015-08-06 17:16:12

标签: java jpeg encode

正如标题所说,我需要找到一些java jpeg编码器(这是很好的源代码或外部库)给定一个表示原始像素图像的数组或BufferedImage可以编码而无需编写文件中的任何内容都可能通过某种数组返回编码图像,至少可以选择图像质量并且效率可能很高。

注意:所需的数组/图像类型输入(byte,int,argb,rgb,bgr,yuv ...)对我来说无关紧要,我可以进行适当的转换

2 个答案:

答案 0 :(得分:2)

正如评论中已经提到的:您可以使用ImageIO类,并使用它来写入ByteArrayOutputStream。代码可能真的很简单:

private static byte[] getJpgData(BufferedImage image)
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write(image, "jpg", baos);
    return baos.toByteArray();
}

这将将图像写入光盘左右。它只会将图像写入内存块,然后您可以进一步处理或操作。

答案 1 :(得分:0)

如果您只需要一个字节流,那么使用Java的内置方法。

http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#write(java.awt.image.RenderedImage,%20java.lang.String,%20java.io.OutputStream)

ImageIO.write(myImage, "format", myOutputStream);