Java BufferedImage序列化
问题描述:
我有类,服务器,客户端和消息。 Message类由服务器名称,客户端名称,BufferedImage,命令等组成。我想要做的是将BufferedImage从Server存储为Message作为序列化的字节形式,将Message发送给Client,并在Message类中接收到Message后,将消息中的BufferedImage反序列化。我想问一下它是如何完成的,因为我能找到的就是直接从服务器发送BufferedImage到客户端。Java BufferedImage序列化
非常感谢。
答
您可以在ObjectOutputStream
中编写消息实例。
只需定义Message
类,并将所有字段序列化, 将BufferedImage
存储为字节表示形式。
从服务器端,您可以通过这种方式在OutputStream中写邮件:
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();
可能的复制[什么是序列化的图像(与Swing兼容)从Java到Android的最好方法是什么?(HTTP: //stackoverflow.com/questions/9994129/what-is-the-best-way-to-serialize-an-image-compatible-with-swing-from-java-to) –