在 fileStream.CopyTo(memoryStream) 之后,memoryStream 为 null
本文关键字:memoryStream null 之后 CopyTo fileStream | 更新日期: 2023-09-27 18:09:44
所以,我有一个函数,它BitmapImage
,我需要将其保存到 iso 存储并转换为 Base64(用于发送到服务器(。但是,从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
从fileStream
的当前位置复制副本,该位置已被 SaveJpeg()
更改,因此您需要重置它;
var memoryStream = new MemoryStream();
fileStream.Position = 0;
fileStream.CopyTo(memoryStream);