Windows Phone 8.1中BitmapImage到Base64

时间:2015-02-13 13:16:33

标签: c# windows-phone base64 windows-phone-8.1 bitmapimage

我正在编写Windows Phone 8.1应用程序(WINRT)。

我使用 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);          

        }

1 个答案:

答案 0 :(得分:0)

您正在转换空缓冲区:您的WriteableBitmap中没有任何数据。即使你这样做,那可能不是你想要的。您通常希望编码位图文件格式(png,jpg等)而不是原始像素。这是您在将其解码为BitmapImage之前从文件选择器获得的内容。只需打开StorageFile,获取其数据流,并在其上调用ToBase64String。