我需要格式化文本并通过WebService将其提供给客户端应用程序,这些应用程序也是用C#编写的。我需要像StackOverflow一样提供粗体,编号等文本格式。
此外,我需要在此文本"中嵌入图像。导致包含图像的提供文本需要存储在客户端,以便在Web服务不可用的情况下进行缓存。
我认为解决文本格式化可以使用标记语言完成,但如何在格式化文本中存储/嵌入图像?
或许这可能与HTML有关吗?重要的是,我在网上提供了一个用于文本输入的小界面,并选择图像然后嵌入到文本中。所以我需要在客户端(winforms app)和web端(asp.net mvc应用程序)上有一个解析器和显示组件。
答案 0 :(得分:1)
好吧,你 使用某种标记语言。如果要在Web上显示结果,HTML是最合理的选择。但是,通常不会使用标记语言嵌入图像。标记是基于文本的,图像是二进制文件。这两种格式并不真正混合。
也就是说,HTML有些特殊情况。您可以使用数据URI来包含任意图像数据或SVG,因为SVG本身是一种专门的矢量格式,它使用标记而不是二进制代码来编码图像。但是,如果您的图像不是矢量,那么您将不得不依赖于数据URI,即使这样,这些也只能用于相对较小的图像。数据URI基本上是一个编码为base64的字节数组,这意味着它不能很好地扩展。例如,我刚刚测试了将44 KB图像编码为数据URI,结果为62 KB。不过,如果您选择这样做,语法为:
<img src="data:[mimetype];base64,[data]"/>
其中[mimetype]
是图片的mime类型(image/jpeg
,image/png
等),而[data]
是您的base64编码字节数组。
数据URI现在通常在浏览器中得到很好的支持,但是某些旧版本的IE尤其无法读取它们。尽管如此,这可能不是一个问题。有一点需要担心的是,您发送的响应很多已经用于在网络上显示,或者必须由可以解析HTML(和数据URI)的内容处理像WebKit。因此,就如何利用响应而言,你可以自己装箱。