在Java中以简单快捷的方式获取jpeg图像的原始数据?

时间:2012-07-14 16:46:59

标签: java image

我正在使用this phone app作为我在PC上编写的应用程序的眼睛。网络摄像头应用程序允许我以jpeg格式下载即时镜头。我需要对这些镜头进行图像处理,为了做到这一点,我想抓住原始数据阵列 - 即描述图像的像素矩阵。怎么办呢?

2 个答案:

答案 0 :(得分:6)

最简单的方法是

ImageIO.read(new File("Image.jpeg"))

获取BufferedImage。使用BufferedImage,您可以使用getRGB(int x, int y)getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)来获得更好的效果。此外,getRaster()是一个选项,我发现它是最快的(虽然稍微努力)。

为了设置像素,存在类似的setRGB方法。

修改:ImageIOjavax.​imageio.​ImageIO

答案 1 :(得分:0)

最好的起点可能是阅读有关图像格式规范的几句话。这些应解释如何为不同格式存储数据。有了这些知识,如果你真的有这种感觉,你可以自己写一个解析器。

但是之前想一想:jpeg不仅仅是像素的栅格矩阵,例如位图图像。

最有可能的是,您最终会使用图像处理库,而不是自己处理原始数据。这种方法更方便,更不容易出错。