【问题标题】:How to return an image stored in a database using a VB.NET WebAPI如何使用 VB.NET WebAPI 返回存储在数据库中的图像
【发布时间】:2013-11-05 20:20:50
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    从图片创建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 库的编码和解码。

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多