【问题标题】:How to read png images form inputstream in java如何从java中的输入流中读取png图像
【发布时间】:2012-07-04 12:45:10
【问题描述】:

有 2 个应用程序。一个应用程序充当服务器,并使用以下代码连续发送桌面屏幕截图。

Robot robot=new Robot();
OutputStream os;
BufferedImage image = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", os);

第二个应用程序是Android应用程序,它充当客户端应用程序,必须从输入流中连续读取上述图像流。

请帮我从客户端应用程序的输入流中读取 png 图像。

感谢和问候 迷你。

【问题讨论】:

  • 还有ImageIO.read(InpusTream) ;),你可以写(像你一样)和读...
  • 有什么方法可以在不使用 java.awt.* 包和 javax.imageIo.* 的情况下读取 png 图像头?

标签: java android sockets remote-desktop


【解决方案1】:

client应用程序中,通过Socket.getInputStream()方法读取InputStream。

 BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
 BufferedImage image = ImageIO.read(in);

【讨论】:

  • 这里我没有使用java.awt包
  • 因为ImageIO 会将流包装在ImageInputStream 中,我怀疑添加的BufferedInputStream 会有多大用处。
  • Application 线程挂在这一行 BufferedInputStream in = new BufferedInputStream(socket.getInputStream());由于服务器不断向客户端发送图像流。
【解决方案2】:

Android SDK 不支持 ImageIO.read() 方法。即使您可以编译您的代码,您的 android 应用程序也会崩溃并出现有关缺少库的错误,如下所示:

找不到方法 javax.imageio.imageio.read

我建议使用位图而不是这个...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2011-05-29
    • 2021-10-07
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多