2010-07-06 24 views
0

J'ai une application .NET Windows qui recueille l'encre en utilisant Microsoft.Ink à partir de Microsoft Tablet PC SDK et le stocke dans une base de données. Cela fonctionne bien.Comment puis-je afficher l'encre (qui est déjà capturée) en tant qu'image dans une page ASP.NET?

Maintenant, j'ai besoin d'afficher cette encre en tant qu'image dans une application ASP.NET.

Notez que je n'ai pas besoin de capturer des traits dans l'application Web. Il suffit d'afficher les traits déjà capturés en tant qu'image. Je ne sais pas comment procéder. Je pense que je ne peux pas utiliser Renderer.Draw dans une page Web.

S'il vous plaît aider, amis

EDIT: Merci pour l'aide. Voici l'exemple de code si quelqu'un a besoin:

 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(); 

Voici la balise image dans la page pour l'afficher:

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

Comment l'avez-vous stocké dans la base de données? Les traits sont-ils stockés en XML? –

+0

Il est stocké sous la forme Ink Serialized Format (ISF). – Zesty

Répondre

1

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

Est-il possible que vous sérialiser votre objet d'encre à ce format? Dans ce cas, vous le traiterez comme une image sur votre site Web, tout en ayant la possibilité de le désérialiser dans une autre instance de Ink class

+0

Vous avez raison. Il est stocké en format ISF. Mais comment convertir cela en image? J'ai essayé d'utiliser Convert.FromBase64String pour le convertir en tableau Byte. Mais ça ne s'affiche pas. Je vais mettre le code dans la question pour la lisibilité. – Zesty

+0

Je crois que Response.ContentType devrait être 'image/gif', ou juste' image' - dans ce dernier cas, le navigateur essaiera de trouver le format Si cela ne vous aide pas, essayez de créer un objet Image à partir des données vous obtenez d'ink.Save(), puis enregistrez l'image directement dans le flux de sortie. Peut-être que les métadonnées que contient le gif d'encre cassent la logique du navigateur ... mais c'est improbable. – ULysses