Java 将图像序列化为字符串

Java 将图像序列化为字符串,java,android,serialization,Java,Android,Serialization,好朋友 几个月来,我一直在寻找一种方法来序列化我存储在imageView中的图像 此图像由相机拍摄并启动ImageView,但问题需要序列化并将其传递给文本字符串 我在谷歌和论坛上到处搜索,但都没有找到答案 有人知道我该怎么做吗?如果你想安全地将二进制数据作为文本移动,你可以对二进制数据进行Base64编码。如果您使用的Android API不包括Base64 UTIL,请参阅: 一旦二进制数据被Base64编码,它就可以安全地通过只需要“纯”ascii文本的系统 请记住,位图数据将被解压缩,因

好朋友

几个月来,我一直在寻找一种方法来序列化我存储在imageView中的图像

此图像由相机拍摄并启动ImageView,但问题需要序列化并将其传递给文本字符串

我在谷歌和论坛上到处搜索,但都没有找到答案


有人知道我该怎么做吗?

如果你想安全地将二进制数据作为文本移动,你可以对二进制数据进行Base64编码。如果您使用的Android API不包括Base64 UTIL,请参阅:

一旦二进制数据被Base64编码,它就可以安全地通过只需要“纯”ascii文本的系统

请记住,位图数据将被解压缩,因此在Base64编码时将生成大量文本(Base64编码导致表示数据所需的字节数增加1/3)。要缓解此问题,应在Base64编码之前压缩
位图
图像数据,方法如下:

try
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
    bitmap.compress(CompressFormat.JPEG, COMPRESSION_AMOUNT, baos);     
    byte[] compressedBytes = baos.toByteArray();
}
您希望将压缩量设置为50-80之间的值,具体取决于所需大小和质量之间的权衡


任何接收到您的数据的客户端首先需要Base64取消编码,然后将生成的字节解析为JPEG数据以重新创建图像。

如果您想将二进制数据安全地作为文本移动,可以对二进制数据进行Base64编码。如果您使用的Android API不包括Base64 UTIL,请参阅:

一旦二进制数据被Base64编码,它就可以安全地通过只需要“纯”ascii文本的系统

请记住,位图数据将被解压缩,因此在Base64编码时将生成大量文本(Base64编码导致表示数据所需的字节数增加1/3)。要缓解此问题,应在Base64编码之前压缩
位图
图像数据,方法如下:

try
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
    bitmap.compress(CompressFormat.JPEG, COMPRESSION_AMOUNT, baos);     
    byte[] compressedBytes = baos.toByteArray();
}
您希望将压缩量设置为50-80之间的值,具体取决于所需大小和质量之间的权衡


任何接收您的数据的客户端都需要先进行Base64编码,然后将生成的字节解析为JPEG数据以重新创建图像。

您是否尝试过将二进制转换为unicode或纯字符?我的意思是,只是逐像素检查颜色的二进制数据并将其保存为字符值?还有,溪流呢?任何流都可能最终成为ByTestStream,然后可以转换为文本流或其他内容。您是否只是希望将图像对象序列化为UTF编码的字符串?您是否尝试过将二进制转换为unicode或纯字符?我的意思是,只是逐像素检查颜色的二进制数据并将其保存为字符值?还有,溪流呢?任何流都可能最终成为ByTestStream,然后可以转换为文本流或其他内容。您只是想将图像对象序列化为UTF编码的字符串吗?我有一种非常类似的方法来压缩图像并将其移动到base64,但这是一个非常大的字符串,我想我需要更小的字符串,无论图像是非常小的还是像素化的,我需要的是序列化图像以使用3G技术发送到服务器。因为我可以压缩得更多,所以字符串要小得多?您可以提高压缩(降低
压缩量
值),或者调整图像大小。你可能想调整图像的大小,因为一些照相手机开始产生高分辨率的图像。我有一个非常类似的方法来压缩图像并将其移动到base64,但这是一个非常大的字符串,我想我需要一些更小的,无论图像是非常小还是像素化的,我需要的是使用3G技术将图像序列化以发送到服务器。因为我可以压缩得更多,所以字符串要小得多?您可以提高压缩(降低
压缩量
值),或者调整图像大小。你可能还是想调整图像的大小,因为一些照相手机开始产生高分辨率的图像。