Java Graphics2D 流?

标签 java streaming video-streaming graphics2d

Java 有没有办法使用 Graphics2D API 在远程 Java 进程的屏幕上绘画? 是否有流式传输和反序列化绘画指令的 API?

或者我必须使用我自己的“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_DRAW_TEXT 操作,否则 text 字段将被忽略。

无论如何,这是一种方法。然后你只需围绕它设计一个通信协议(protocol),将数据从一个地方获取到另一个地方。

关于Java Graphics2D 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7475326/

相关文章:

java - 持有人cardview改变textview颜色错误

java - 无法使用对象列表写入/读取文件

java - wget 文件下载 ftp waitfor() 挂起

python - 设置 reducer 数量不起作用

video-streaming - 从RTP到MPEG-TS的MPEG-ES H.264视频

javascript - 尝试使用 MSE 播放 webm 时出错, block 未附加,视频停止

java - Angular.js 和 Java Applet

python - 将相机捕获的视频流式传输到另一个位置

c# - 为什么 CloudBlockBlob.DownloadToStream 始终返回空流?

c++ - Dash 直播流编码文档