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



我使用这个手机应用程序作为我在PC上编写的应用程序的眼睛。网络摄像头应用程序允许我下载jpeg格式的即时照片。我需要对这些照片进行图像处理,为了做到这一点,我想掌握原始数据阵列,即描述图像的像素矩阵。如何做到这一点?

最简单的方法是进行

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

得到CCD_ 2。使用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

最好的开始点可能是阅读一些关于图像格式规范的文字。这些应该解释数据是如何以不同格式存储的。有了这些知识,如果你真的愿意,你可以为自己编写一个解析器。

但请三思:jpeg不仅仅是像素的光栅矩阵,例如位图图像。

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