【问题标题】:How to embed an image within an markup language (C#)?如何在标记语言 (C#) 中嵌入图像?
【发布时间】:2017-01-31 03:07:52
【问题描述】:

我需要格式化文本并通过 WebService 将其提供给同样用 C# 编写的客户端应用程序。我需要像 StackOverflow 已经提供的粗体、编号等文本格式。

此外,我需要在此“文本”中嵌入图像。导致提供的文本(包括图像)需要存储在客户端,以便在 Web 服务不可用的情况下进行缓存。

我认为可以使用标记语言解决文本格式问题,但如何在格式化文本中存储/嵌入图像?

或者也许这可以通过 HTML 实现?重要的是,例如,我在网络上提供了一个用于文本输入的小界面,并选择图像,然后嵌入到文本中。所以我需要在客户端(winforms 应用程序)和 web 端(asp.net mvc 应用程序)有一个解析器和显示组件。

【问题讨论】:

    标签: c# html asp.net-mvc image markup


    【解决方案1】:

    嗯,你会使用某种标记语言。如果要在网络上显示结果,HTML 是最合乎逻辑的选择。但是,通常没有任何标记语言可以让您嵌入图像。标记是基于文本的,图像是二进制文件。这两种格式并没有真正混合。

    也就是说,HTML 有点特殊。您可以使用数据 URI 来包含任意图像数据或 SVG,因为 SVG 本身是一种专用的矢量格式,它使用标记而不是二进制代码来编码图像。但是,如果您的图像不是矢量,您将不得不依赖数据 URI,即使那样,这些也只能用于相对较小的图像。 Data URI 基本上是一个编码为 base64 的字节数组,这意味着它不能很好地扩展。例如,我刚刚测试了将 44 KB 的图像编码为数据 URI,结果为 62 KB。然而,如果你选择这样做,语法是:

    <img src="data:[mimetype];base64,[data]"/>
    

    [mimetype] 是图像的 mime 类型(image/jpegimage/png 等),[data] 是您的 base64 编码字节数组。

    现在浏览器一般都很好地支持数据 URI,但特别是一些旧版本的 IE 无法读取它们。不过,这可能不是问题。令人担忧的是,您发送的响应必须用于在网络上显示,或者必须由可以解析 HTML(和数据 URI)的东西处理,例如 WebKit .因此,就如何利用响应而言,您正在陷入困境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多