[英]After fileStream.CopyTo(memoryStream), memoryStream is null
So, I have the function, which gets BitmapImage
, I need to save it to iso storage and convert to Base64 (for sending to server). 所以,我有函数,它获取
BitmapImage
,我需要将它保存到iso存储并转换为Base64(用于发送到服务器)。 However, copying from fileStream
to memoryStream
is not successful. 但是,从
fileStream
复制到memoryStream
不成功。
public void SetImage(BitmapImage bitmap)
{
if (isoFiles.FileExists(Settings.FILE_AVATAR_JPG))
isoFiles.DeleteFile(Settings.FILE_AVATAR_JPG);
var fileStream = isoFiles.CreateFile(Settings.FILE_AVATAR_JPG);
var wb = new WriteableBitmap(bitmap);
wb.SaveJpeg(fileStream, 120, 120, 0, 85); // file is saved
var memoryStream = new MemoryStream();
fileStream.CopyTo(memoryStream); // here, memoryStream is null
byte[] result = memoryStream.ToArray();
fileStream.Close();
var base64 = Convert.ToBase64String(result);
}
Stream.CopyTo
copies from the current position of fileStream
which has been changed by SaveJpeg()
so you need to reset it; Stream.CopyTo
从fileStream
的当前位置复制,该位置已被SaveJpeg()
更改,因此您需要重置它;
var memoryStream = new MemoryStream();
fileStream.Position = 0;
fileStream.CopyTo(memoryStream);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.