繁体   English   中英

如何将图像从Java应用程序发送到Android应用程序?

[英]How can I send an Image from a Java application to an Android application?

我有一个客户端 - 服务器应用程序。 服务器是纯Java,客户端是Android应用程序。 它们使用ServerSocket通过TCP进行通信。

我想在服务器上创建一个Image,编辑它(例如在它上画线),然后将它发送到客户端,在屏幕上显示Bitmap。

我的第一种方法是将android.graphics.Bitmap库导入服务器以在那里使用它,但当然因为你不能在Android环境之外使用Android库,所以这是行不通的。

我现在的方法是在服务器上使用BufferedImage,但问题是我无法找到如何以客户端可以从中重构Bitmap的方式对其进行序列化。 我尝试使用ImageIO.write,但那么我在客户端需要做什么?

有没有人知道如何解决这个问题,或者有更好的方法? 我感谢您的帮助。

可以使用BitmapFactory类在Android中解码任何PNG或JPG图像。 获取图像的InputStream然后使用BitmapFactory.decodeStream(inputStream) 它不需要特别序列化......只需发送图像的字节。

有两种方法可以在客户端Android应用程序上获取原始字节流。

  1. 使用getPixels函数
  2. 使用copyPixelsToBuffer函数

getPixels非常简单,并为您提供基本的原始字节。 copyPixelsToBuffer在缓冲区中复制。

获得原始字节后,将它们发送到您的服务器。 这里,在服务器端Java,您可以使用ImageJ等库将原始字节流转换回Image,处理它,将其转换回并发送回Android。

当您的客户端应用程序收到raw_stream时,使用setPixels或copyPixelsFromBuffer函数将其再次转换为android.graphics.Bitmap。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM