我正在使用这个手机应用程序作为我在 PC 上编写的应用程序的眼睛。网络摄像头应用程序允许我下载 jpeg 格式的即时照片。我需要对这些镜头进行图像处理,为了做到这一点,我想掌握原始数据数组——即描述图像的像素矩阵。如何才能做到这一点?
问问题
1920 次
2 回答
7
最简单的方法是做
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
存在类似的方法。
编辑: ImageIO
是javax.imageio.ImageIO
.
于 2012-07-14T16:55:00.180 回答
0
可能最好的起点是阅读有关图像格式规范的几句话。这些应该解释如何以不同的格式存储数据。有了这些知识,如果您真的愿意,您可以自己编写一个解析器。
但请先想想:jpeg 不仅仅是像素的光栅矩阵,例如位图图像。
您很可能最终会使用图像处理库,而不是自己处理原始数据。这种方法更方便,更不容易出错。
于 2012-07-14T16:54:28.033 回答