从JSON对象中的字节数组获取图像到android应用程序

从JSON对象中的字节数组获取图像到android应用程序,android,wcf,json,Android,Wcf,Json,我的情况如下: 我的服务器上运行了一个RESTful WCF服务,该服务旨在从数据库中获取关于人的各种类型的数据,并将这些数据作为单个JSON对象提供。它工作得很好 [编辑]还有另一项服务在服务器上的文件系统中维护图像缓存。当一个请求被发送到RESTful服务时,该服务就会从映像服务请求一个映像。如果图像已经在缓存中(与请求的宽度、高度和人员相同),它将返回该图像(作为字节数组)。我们必须使用此服务来检索图像 现在我想要的是那个人的形象。在我们的数据库中,图像是长原始图像(ew)。然而,我已经处

我的情况如下:

我的服务器上运行了一个RESTful WCF服务,该服务旨在从数据库中获取关于人的各种类型的数据,并将这些数据作为单个JSON对象提供。它工作得很好

[编辑]还有另一项服务在服务器上的文件系统中维护图像缓存。当一个请求被发送到RESTful服务时,该服务就会从映像服务请求一个映像。如果图像已经在缓存中(与请求的宽度、高度和人员相同),它将返回该图像(作为字节数组)。我们必须使用此服务来检索图像

现在我想要的是那个人的形象。在我们的数据库中,图像是长原始图像(ew)。然而,我已经处理了这个问题(上一段)。图像现在是一个字节数组。我对安卓相当陌生,我不确定检索这张图片的最佳方式是什么。我想我可以做的是将字节数组添加到JSON对象中,然后使用base64解码器将其转换为可绘制图像。但是,每次我尝试时,它都会超时,并告诉我它期望JSON对象的字符缓冲区的某个任意索引处出现“,”或“]”

我已经能够毫无问题地从JSON对象中提取少量数据,但是现在有了一个巨大的字节数组,JSONObject讨厌我。从我的服务中获取此图像的更好方法是什么

  • Base64对字节数组进行编码以获取字符串
  • 将字符串添加到JSON对象并发送它
  • 收到JSON后,取出字符串
  • Base64对其进行解码以获取字节数组
  • 使用字节数组创建图像
  • 请参见上的问题,最好将此类数据存储在文件系统中。如果可能,请弃用该字段,并创建脚本以将现有图像移动到文件系统

    然后,您应该将图像存储在可以通过URL检索的文件系统(或某种内容管理系统)上

    然后将URL存储在数据库中。然后可以将其发送到json对象中

    {
    ...
        image_url:<url from database>
    ...
    }
    
    {
    ...
    图片地址:
    ...
    }
    
    当客户端收到此消息时,它将调用该URL并下载图像


    您的客户机将不得不单独调用以检索图像,但这通常比用二进制数据填充数据库要好。如果您想快速显示数据,同时允许在后台下载图像,这也会对您有利。

    这种返回流(从)的方式比使用Base64编码更好


    我不完全是这个意思,我试图再澄清一点。检查我的编辑。我相信这就是我要找的。
    
    [OperationContract, WebGet]
    public Stream GetTestImage(Image image)
    {
        MemoryStream stream = new MemoryStream();
        image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
        stream.Position = 0;
        WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
        return stream;
    }