在Java中从COM7端口读取图像数据

我正在做一个项目,我必须将从相机芯片捕获的图像显示在PC上。

图像数据通过COM7端口发送到计算机。 (我使用哑终端程序检查过它)。 基本上我想要做的是开发一个Java程序,它将读取COM端口,获取图像数据,处理它并在屏幕上显示它。

我想知道的是如何从我的Java程序中的COM7端口读取此图像数据。

对于问题的串行端口部分,请像任何其他文件一样读取串行端口。

  • 在’nix上,串行端口被命名为/dev/ttySn ,其中COM 0到COM4的n 0-3。 我猜测如果存在更多串行端口,系统上将存在适当命名的文件以访问这些文件。
  • 在Windows上,您只需使用特殊文件名COM1COM2等。

至于实际读取图像数据,如其他人所述,您需要知道它的格式。如果它是Java已知的文件格式之一,您可以尝试使用ImageIO.read() 。 如果它是原始位图格式,您可以尝试通过从Raster创建BufferedImage,从适当的SampleModel和DataBuffer创建Raster,从原始数据构建缓冲图像。 但是,您需要知道位图数据的格式才能执行此操作。

您可能希望从端口读取数据开始。 为此, Socket可能很有用。

由于您“认为”数据将是字节…请尝试以下操作:

 BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes)); 

您还可以查看相关post