2013-09-17 6 views
0

У меня есть приложение для Windows Phone 8, где я делаю снимок. Я хотел бы получить строку Base64 от объекта e.ChosenPhoto, но не знаю, как это сделать.WP8 e.ChosenPhoto to Base64 String

Код:

private void cameraCaptureTask_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK) 
    { 
     var bmp = new BitmapImage(); 
     bmp.SetSource(e.ChosenPhoto); 
     imgPhoto.Source = bmp; 
     imgPhoto.Stretch = Stretch.Uniform; 

     // Get the base64 String from the e.ChosenPhoto or the bmp object 
    } 
} 
+1

Вы пытались преобразовать изображение в Byte [], а затем преобразовать его в строку Base64? –

+0

Какое изображение? Объект BitmapImage или e.ChosenPhoto? Не могли бы вы рассказать. – Subby

+0

Учитывая, что 'bmp' и' e.ChosenPhoto' - это тот же объект, это не имеет значения. –

ответ

1

Ниже показано, как я решил эту проблему:

 byte[] bytearray = null; 

     using (var ms = new MemoryStream()) 
     { 
      if (imgPhoto.Source != null) 
      { 
       var wbitmp = new WriteableBitmap((BitmapImage) imgPhoto.Source); 

       wbitmp.SaveJpeg(ms, 46, 38, 0, 100); 
       bytearray = ms.ToArray(); 
      } 
     } 
     if (bytearray != null) 
     { 
      Sighting.Instance.ImageData = Convert.ToBase64String(bytearray); 
      PhotoModel.Instance.BitmapImage = bitmapImage; 
     }