2015-02-13 3 views
0

Я пишу приложение Windows Phone 8.1 (WINRT).BitmapImage to Base64 в Windows Phone 8.1

Я выбрал фотографию, используя FileOpenPicker. Как преобразовать это BitmapImage в Base64?

или любое другое решение, такое как BitmapImage, чтобы изображение запоминать в байтах и, наконец, на base64?

Мой текущий метод дает мне «AAAAAAAAAAAAAAAAAAA» только:

private void ConvertImageToBase64(BitmapImage BitmapImageObject) 
     { 
      byte[] bytearrayObject = null; 

      MemoryStream MemoryStreamObject = new MemoryStream(); 
      WriteableBitmap WriteableBitmapObject = new WriteableBitmap(BitmapImageObject.DecodePixelWidth, BitmapImageObject.DecodePixelHeight); 
      Stream StreamObject = WriteableBitmapObject.PixelBuffer.AsStream(); 
      StreamObject.CopyTo(MemoryStreamObject); 
      bytearrayObject = MemoryStreamObject.ToArray(); 
      finalBase64 = Convert.ToBase64String(bytearrayObject);   

     } 

ответ

0

Вы конвертируете пустой буфер: Ваш WriteableBitmap не имеет каких-либо данных в нем. Даже если бы вы это сделали, это, вероятно, не то, что вы хотите. Обычно вы хотите кодировать формат растрового файла (png, jpg и т. Д.), А не исходные пиксели. Это то, что вы получаете от сборщика файлов, прежде чем декодировать его в BitmapImage. Просто откройте StorageFile, получите его поток данных и вызовите ToBase64String.