2010-11-05 5 views
1

Je suis en train de convertir une chaîne ASCII à un ImageSource comme si dans WP7:WP7 Conversion ASCII chaîne à une image

 
      string imageString = "%PNG image data here in ASCII"; 

      byte[] imageBytes = new byte[sizeOfImage]; 
      System.Text.Encoding.UTF8.GetBytes(imageString.ToCharArray(), 0, imageString.ToCharArray().Length - 1, 
       imageBytes, 0); 

      MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); 

      // Convert byte[] to Image 
      ms.Write(imageBytes, 0, imageBytes.Length); 

      BitmapImage bitmapImage = new BitmapImage(); 
      bitmapImage.SetSource(ms); 

Mais il n'y a pas Encoding.ASCII dans WP7 si évidemment sur le « codage. UTF "ligne échoue parce que WP7 a seulement ce codage. Y at-il une solution de contournement pour cela?

Remarque: la chaîne ASCII représente un fichier PNG.

+1

Quel type d'encodage utilisez-vous en plus de "ASCII"? Vous savez que l'ASCII n'est que de 7 bits, n'est-ce pas? Pourquoi encodez-vous une image en tant que texte en premier lieu? –

+0

"ceci est Unicode"; Je suis confus. –

+0

Est-ce que les projets WP7 n'autorisent pas les fichiers de ressources ou similaires où vous pourriez mettre une copie binaire réelle du fichier PNG au lieu d'essayer de le faire comme ça? Je suis à peu près sûr que votre "représentation" ASCII ne représente pas réellement un vrai fichier PNG. Cela peut vous ressembler, mais ce ne sera pas un fichier PNG valide car l'ASCII n'est que de 7 bits, vous perdrez donc beaucoup d'informations dans ce processus. –

Répondre

3

Je pense que ce que vous voulez vraiment faire est la suivante: -

byte[] imageBytes = Convert.FromBase64String(imageString); 

Cependant Lasse est exact. Pourquoi diable voudriez-vous faire cela? Ajoutez simplement le png au Xap en tant que contenu. L'ensemble devient quelque chose comme: -

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/yourfile.png", UriKind.Relative)); 

Où Assets est un dossier que vous créez dans votre projet pour stocker de telles choses.

+0

Oui, sauf si vos informations d'image sont stockées dans des données ASCII quelque part, il est beaucoup plus facile d'utiliser simplement le fichier binaire (png, jpg, wav) comme contenu. –

+0

Je reçois un fichier png en tant que chaîne ASCII à partir d'un serveur web. Donc, Base64 fonctionne vraiment. – Exegesis

Questions connexes