在java中有没有一种方法可以使用Graphics2D API在远程java进程的屏幕上绘图?是否有API来流式处理和反序列化绘制指令?
或者我必须使用我自己的"api调用“序列化/反序列化机制?
发布于 2011-09-20 02:24:18
这真的取决于你面对的是哪种媒体。如果你正在播放视频,你使用的编解码器可能有API来做这件事,但是你需要四处搜索才能找到答案。Graphics2D实际上用于更原始的绘制操作,例如绘制形状、呈现文本和从一个地方到另一个地方复制图像数据。
如果您正在编写自己的流算法,那么可以像定义一个执行所需操作的PaintEvent类一样简单。PaintEvent类的想法是,它包含执行什么操作的指令。例如,如果你用RADI50在远程系统上画了一个圆,而不是通过网络传输像素数据,那么在网络上传输一条消息,基本上就是“画一个半径为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_DRAW_TEXT操作,否则text字段将被忽略。
无论如何,这是一种方法。然后,您只需围绕此设计一个通信协议,以便将数据从一个位置传送到另一个位置。
https://stackoverflow.com/questions/7475326
复制相似问题