2010-03-03 2 views
2

quelle est la manière la plus facile de traduire une image bitmap & Png en chaîne ET RETOUR ENCORE. J'ai essayé de faire quelques économies à travers les flux de mémoire et autres, mais je ne peux pas sembler le faire fonctionner! Apparemment, je n'étais pas clair, ce que je veux, c'est de pouvoir traduire une classe Bitmap, avec une image dedans .. dans une chaîne système. à partir de là, je veux être en mesure de jeter ma chaîne autour d'un peu, puis le traduire dans un bitmap à afficher dans un PictureBox.Un moyen facile de convertir une image bitmap et Png en texte et vice versa

+1

Par "traduire en chaîne", parlez-vous de l'encodage de la Base64, ou du texte OCRing dans l'image? – itowlson

+0

Votre besoin est-il de convertir un _binary_ format en quelque sorte (par exemple adapté à différents protocoles Internet), ou est-ce à OCR le texte trouvé dans les images, ou est-ce autre chose? – mjv

+0

@itowlson, cela fait deux d'entre nous d'être confus par la question ;-) – mjv

Répondre

8

Sur la base de @peters réponse que j'ai fini par utiliser ceci:

string bitmapString = null; 
using (MemoryStream memoryStream = new MemoryStream()) 
{ 
    image.Save(memoryStream, ImageFormat.Png); 
    byte[] bitmapBytes = memoryStream.GetBuffer(); 
    bitmapString = Convert.ToBase64String(bitmapBytes, Base64FormattingOptions.InsertLineBreaks); 
} 

et

Image img = null; 
byte[] bitmapBytes = Convert.FromBase64String(pictureSourceString); 
using (MemoryStream memoryStream = new MemoryStream(bitmapBytes)) 
{ 
    img = Image.FromStream(memoryStream); 
} 
4

De bitmap à la chaîne:

MemoryStream memoryStream = new MemoryStream(); 
bitmap.Save (memoryStream, ImageFormat.Png); 
byte[] bitmapBytes = memoryStream.GetBuffer(); 
string bitmapString = Convert.ToBase64String(bitmapBytes, Base64FormattingOptions.InsertLineBreaks); 

chaîne à partir de l'image:

byte[] bitmapBytes = Convert.FromBase64String(bitmapString); 
MemoryStream memoryStream = new MemoryStream(bitmapBytes); 
Image image = Image.FromStream(memoryStream); 
+0

Est-ce que ImageFormat.Jpeg n'est pas une compression avec perte? ImageFormat.Png ne serait pas un meilleur choix en raison de sa nature sans perte? – Ants

+0

Je voyage, sans environnement de développement, donc répondu de mémoire (le mien) et certains Google sur la syntaxe. Je ne pensais pas que Jpeg est avec perte, mais je suis d'accord et je mettrai à jour ma réponse ... – Peter

Questions connexes