如何使用VB.NET WebAPI返回存储在数据库中的图像

时间:2013-11-05 20:20:50

标签: vb.net asp.net-web-api javascriptserializer

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

1 个答案:

答案 0 :(得分:2)

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

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

从image:

创建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库解码。