【问题标题】:How can I display ink (that is already captured) as an image in an ASP.NET page?如何在 ASP.NET 页面中将墨迹(已捕获的)显示为图像?
【发布时间】:2011-03-12 06:46:10
【问题描述】:

我有一个 .NET windows 应用程序,它使用 Microsoft.Ink 从 Microsoft Tablet PC SDK 收集墨水并将其存储在数据库中。效果很好。

现在我需要在 ASP.NET 应用程序中将此墨迹显示为图像。

请注意,我不需要在 Web 应用程序中捕获任何笔画。只需将已捕获的笔画显示为图像即可。我不知道该怎么做。我想我不能在网页中使用 Renderer.Draw。

朋友们,请帮忙

编辑:感谢您的帮助。如果有人需要,这是示例代码:

        Response.Clear();
        Response.ContentType = "image/jpeg";
        Byte[] isf = Convert.FromBase64String("AI8BHQS6AoQBAwRIEEU1CoABNofwCMeAU9BIREIpEoZCoJpCdyGDxCUYCi8ZicV3rFIRAILEchwGGx/MEQgkD1FBoIyBBoJAoFN53LY/EYPU4LAwh+sa6m2HwCLSacReHwGDatQ2Qy2f4PkMVhcB4FiSxWARSVbmiMHguyYfBYFdSESWNSSZTySRaQSqbUCjwYA="); // Sample
        ink.Load(isf);
        Byte[] imageData = ink.Save(PersistenceFormat.Gif);
        Response.BinaryWrite(imageData);
        Response.End();

这是页面中的图像标签来显示它:

    <img alt="" src="RenderImage.aspx" />

【问题讨论】:

  • 您是如何将其存储在数据库中的?笔画是否存储为 XML?
  • 存储为 Ink 序列化格式 (ISF)。

标签: asp.net image rendering tablet-pc microsoft.ink


【解决方案1】:

http://msdn.microsoft.com/en-us/library/aa515948.aspx

您是否可以将您的墨水对象序列化为这种格式?在这种情况下,您只需将其视为您网站上的图像,同时仍然可以选择将其反序列化为 Ink 类的另一个实例

【讨论】:

  • 你是对的。它以 ISF 格式存储。但是如何将其转换为图像?我尝试使用 Convert.FromBase64String 将其转换为 Byte 数组。但它不显示。为了便于阅读,我将代码放在问题中。
  • 我相信 Response.ContentType 应该是 image/gif,或者只是 image - 在后一种情况下,浏览器将尝试找出格式如果这没有帮助,请尝试创建一个 Image 对象从您从 ink.Save() 获得的数据中,然后将图像直接保存到输出流中。也许墨水 gif 保存的元数据会破坏浏览器的逻辑......但这是不可能的。
猜你喜欢
  • 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
相关资源
最近更新 更多