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