Java 缓冲图像序列化
Java BufferedImage Serialization
我有 class 的服务器、客户端和消息。 Message class 由服务器名称、客户端名称、BufferedImage、命令等组成。我想做的是将一个 BufferedImage 作为序列化字节形式从服务器存储到 Message,将 Message 发送到 Client,并在 Client class 中接收到消息后在 Message 中反序列化 BufferedImage。我想问一下怎么实现,因为我能找到的就是将BufferedImage直接从Server发送到Client。
非常感谢。
您可以将消息实例写入 ObjectOutputStream
。
只需定义 Message
class 与所有字段序列化和
将 BufferedImage
存储在字节表示中。
在服务器端,您可以通过这种方式在输出流中写入消息:
OutputStream outputStreamServer = ...;
byte[] bufferedImage = ...
Message message = new Message(bufferedImage, name, ...);
ObjectOutputStream ObjectOS = new ObjectOutputStream(outputStreamServer);
ObjectOS.writeObject(message);
这样,从客户端,您可以使用ObjectInputStream
读取服务器流并获得Message
实例。
当客户希望时,他可以将字节反序列化为 BufferedImage
:
ObjectInputStream ObjectIS = new ObjectInputStream (inputStreamClient);
Message message = (Message) ObjectIS.readObject();
...
// where unserializeBufferedImage() is a custom method to do the unserialization
BufferedImage image = message.unserializeBufferedImage();
我有 class 的服务器、客户端和消息。 Message class 由服务器名称、客户端名称、BufferedImage、命令等组成。我想做的是将一个 BufferedImage 作为序列化字节形式从服务器存储到 Message,将 Message 发送到 Client,并在 Client class 中接收到消息后在 Message 中反序列化 BufferedImage。我想问一下怎么实现,因为我能找到的就是将BufferedImage直接从Server发送到Client。
非常感谢。
您可以将消息实例写入 ObjectOutputStream
。
只需定义 Message
class 与所有字段序列化和
将 BufferedImage
存储在字节表示中。
在服务器端,您可以通过这种方式在输出流中写入消息:
OutputStream outputStreamServer = ...;
byte[] bufferedImage = ...
Message message = new Message(bufferedImage, name, ...);
ObjectOutputStream ObjectOS = new ObjectOutputStream(outputStreamServer);
ObjectOS.writeObject(message);
这样,从客户端,您可以使用ObjectInputStream
读取服务器流并获得Message
实例。
当客户希望时,他可以将字节反序列化为 BufferedImage
:
ObjectInputStream ObjectIS = new ObjectInputStream (inputStreamClient);
Message message = (Message) ObjectIS.readObject();
...
// where unserializeBufferedImage() is a custom method to do the unserialization
BufferedImage image = message.unserializeBufferedImage();