0

我正在使用 SQL Server 和 VB.NET WebAPI。我目前正在使用 javascript 序列化程序返回数据,以在 android 应用程序正在使用的 API 中返回 JSON。我想在数据中包含存储在数据库中的图像。我已经编写了所有数据库内容并且它正在返回数据我只是不知道如何将图像作为数据的一部分包含在 API 中。

4

1 回答 1

2

我通常不会将图像存储在我的数据库中,而是将图像放在某个 Web 服务器上,并存储这些图像的链接。在这种情况下,您所要做的就是在您返回的 json 对象中提供图像的 url。

但是,如果您确实想要存储图像,您所做的是图像的 base64 编码(或基本上任何其他资源,如 pdf 文件、Word 文档等)
以下代码取自此处

从图像创建 base64 字符串:

Public Shared Function ImageToBase64String(ByVal image As Image, _
                                         ByVal imageFormat As ImageFormat)
    Using memStream As New MemoryStream
        image.Save(memStream, imageFormat)
        Dim result As String = Convert.ToBase64String(memStream.ToArray())
        memStream.Close()
        Return result
    End Using
End Function

和Visa Versa

Public Shared Function ImageFromBase64String(ByVal base64 As String)
     Using memStream As New MemoryStream(Convert.FromBase64String(base64))
         Dim result As Image = Image.FromStream(memStream)
         memStream.Close()
         Return result
     End Using
End Function

由于结果是一个普通字符串(尽管是一个非常长的字符串),您可以将其作为字符串添加到您的 json 对象中,然后在客户端再次对其进行解码:)
(几乎)每种语言都有一些来自 base64 的编码和解码图书馆。

于 2013-11-06T10:33:26.360 回答