处理在自定义构建的远程显示器上显示图形的最佳方法?

时间:2011-06-01 19:48:25

标签: java graphics processing

目标是使用Processing作为脚本环境来创建图形,并将输出显示在类似LED灯板的自定义显示设备上。运行程序的服务器将位于1U机架上。这个想法是所有LED的东西都是定制硬件,但不是重新发明轮子,最好使用现有的堆栈来驱动显示器。问题是让java在这个设备上显示。

我最初的想法是: 1.在无头模式下运行Java。 2.使用Xvbf作为帧缓冲区。 3.让程序运行读取帧缓冲区,将其解压缩,然后以30 fps的速度将其显示在远程设备上。 4.使用Processing脚本生成图形。

这有意义吗?有没有更好的办法?我对这个领域并不了解,但它似乎比尝试创建一个新的java.awt更好。

3 个答案:

答案 0 :(得分:1)

如果“远程设备”只是通过USB或某些PCI控制器直接连接的东西,这看起来很合理(而且正是xvfb的用途)。但是,如果远程设备是通过以太网或wifi连接的东西,根据它的分辨率你可能会发现复制所有数据的天真方法每帧需要太多的带宽,在你知道它之前你将滚动你自己的帧差分图像压缩。如果你发现自己沿着这条路走下去,看看VNC / TightVNC类软件(至少在无头服务器上通常使用的形式)提供了一个类似Xvfb的虚拟帧缓冲/ X服务器可通过TCP / IP协议访问,该协议可使用压缩合理有效地传输内容,并使用VNC客户端软件进行显示。

答案 1 :(得分:1)

我经常在JFreeChart模式下使用headlessVNC来使用ChartUtilities在servlet中生成图表。您似乎可以通过USB将图片下载到picture frame

答案 2 :(得分:1)

另一个建议的选项是使用Processing的createGraphics()并将结果写入文件。我不知道这个选项的权衡。它不支持OPENGL。而且我担心写入将是一个同步操作,因此在写入过程中不能进行计算,这会使我难以获得高帧速率。