Java Graphics2D流媒体?
java中有没有一种方法可以使用Graphics2D API在远程java进程的屏幕上绘制? 任何流式和反序列化绘画指令的APIJava Graphics2D流媒体?,java,streaming,video-streaming,graphics2d,Java,Streaming,Video Streaming,Graphics2d,java中有没有一种方法可以使用Graphics2D API在远程java进程的屏幕上绘制? 任何流式和反序列化绘画指令的API 或者我必须使用我自己的“api调用”序列化/反序列化机制?这实际上取决于您处理的媒体类型。如果您正在播放视频,您使用的编解码器可能是API,但您需要四处搜索才能找到。Graphics2D实际上是用于更原始的绘制操作,例如绘制形状、渲染文本和将图像数据从一个地方复制到另一个地方 如果您正在编写自己的流式算法,那么它可以简单到定义一个PaintEvent类来完成您需要的任
或者我必须使用我自己的“api调用”序列化/反序列化机制?这实际上取决于您处理的媒体类型。如果您正在播放视频,您使用的编解码器可能是API,但您需要四处搜索才能找到。Graphics2D实际上是用于更原始的绘制操作,例如绘制形状、渲染文本和将图像数据从一个地方复制到另一个地方 如果您正在编写自己的流式算法,那么它可以简单到定义一个
PaintEvent
类来完成您需要的任务。PaintEvent
类的思想是,它包含如何操作的指令。例如,如果您在远程系统上使用radio 50绘制一个圆圈,那么,与通过网络传输像素数据相比,在网络上传输一条基本上是“绘制半径为50的圆圈”的消息,并让客户端在其一侧渲染,效率要高得多
我认为一个PaintEvent类应该是这样的:
public class PaintEvent {
public static final int OPER_DRAW_CIRCLE = 0;
public static final int OPER_DRAW_RECT = 1;
public static final int OPER_DRAW_TEXT = 2;
...etc...
int paintOperationID;
int[] paintDetails; // where 'paintDetails' contains data such as a circle's radius, a rectangle's dimensions, the (x, y) location where to render text, etc.
java.awt.Color renderColor;
String text;
public PaintEvent(int paintOperationID, int[] paintDetails, Color renderColor, String text) {
...
}
}
因此,根据paintOperationID
是什么,它将以不同的方式处理paintDetails
中的数据。除非是OPER\u DRAW\u TEXT
操作,否则TEXT
字段将被忽略
无论如何,这是一种方法。然后,您只需围绕这一点设计一个通信协议,将数据从一个地方传输到另一个地方。谢谢,如果没有其他解决方案,我会想到这种方法。这个问题的解决方案非常简单,我认为任何人都已经准备好使用它了——Graphics2d代理、IO/流媒体、消息处理程序,连接到另一个Graphics2d。但似乎我应该自己实现消息处理程序——这是我的建议。这不会花很长时间,而且我怀疑如果有其他人做了,他们是否会发布。Java2D并不是很多2D图形的常用库。从此,Java中的2D图形变得非常专业化(即游戏图形),并拥有专用于其所服务的应用程序空间的库。