如何从Image.Source获取Memory Stream/Base64字符串?

Vai*_*arg 4 silverlight

我有一个动态创建的Image控件,通过OpenFileDialog填充,如:

OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == true)
{
    using (FileStream stream = dialog.File.OpenRead())
    {                    
        BitmapImage bmp = new BitmapImage();
        bmp.SetSource(stream);
        myImage.Source = bmp;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在单独的函数调用中将图像作为字符串通过Web服务发送回服务器.

如何从myImage.Source获取内存流/ base64字符串

The*_*ing 10

这是一个应该工作的替代方案(没有BmpBitmapEncoder).它使用FileStream流来创建字节数组,然后将其转换为Base64字符串.这假设您希望在当前代码的范围内执行此操作.

  Byte[] bytes = new Byte[stream.Length];
  stream.Read(bytes, 0, bytes.Length);
  return Convert.ToBase64String(bytes); 
Run Code Online (Sandbox Code Playgroud)