2

论坛的好朋友。

我一直在搜索很多,但我找不到如何序列化图像并将其传递给 android 中的字符串。

可能不是这样,如果有人知道并想通知我,我将非常感激!

4

3 回答 3

1

Base64 将是在字符串中可靠地传输二进制数据(例如图像)的最有效方式。

但是,由于您要求的东西更小,您可以考虑对图像进行 base64 编码,然后压缩结果字符串,然后进行 base64 编码...

它为您节省了几个字节,但不多。在某些情况下,它甚至可能使结果更大。

如果您同时控制服务器和客户端,则应考虑创建另一个允许您发送字节的接口。

于 2012-05-08T22:40:01.160 回答
1

虽然java.awt.Image类不是(不实现)java.io.Serializablejavax.swing.ImageIcon是。因此,您可以按如下方式对其进行序列化:

ImageIcon myImage; // declare somewhere
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(myImage);
byte[] theBytes = baos.toByteArray();
StringBuffer buf = new StringBuffer();
for (byte b : theBytes) {
  buf.append((char) b); // cast to char, then append
}
String theString = b.toString();

我会让你弄清楚如何扭转它,但这里有一个提示:OutputStream使用类而不是InputStream类。

于 2012-04-30T22:33:38.290 回答
1

您可以将图像的字节读取到 abyte[]然后byte[]使用 Base64进行编码,方法如下

于 2012-04-30T22:53:58.890 回答