Простой способ конвертировать растровое изображение и Png изображение в текст и наоборот - PullRequest
2 голосов
/ 03 марта 2010

Какой самый простой способ перевести Bitmap & Png в строку AND BACK AGAIN. Я пытался сделать некоторые сохранения через потоки памяти и тому подобное, но я не могу заставить его работать!

По-видимому, я не был ясен, что я хочу, так это иметь возможность переводить класс Bitmap с изображением в нем ... в системную строку. оттуда я хочу иметь возможность немного перебросить мою строку, а затем перевести ее обратно в растровое изображение для отображения в PictureBox.

Ответы [ 2 ]

8 голосов
/ 03 марта 2010

Основываясь на ответе @peters, я использовал это:

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

и

Image img = null;
byte[] bitmapBytes = Convert.FromBase64String(pictureSourceString);
using (MemoryStream memoryStream = new MemoryStream(bitmapBytes))
{
    img = Image.FromStream(memoryStream);
}
4 голосов
/ 03 марта 2010

От растрового изображения к строке:

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

От строки к изображению:

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