我很难把我选好的照片从我的大房子里救出来。这就是我在尝试的。
Stream stream = _stream = await DependencyService.Get<IPhotoPickerService>().GetImageStreamAsync();
if (stream != null)
{
ItemPic = (StreamImageSource)ImageSource.FromStream(() => stream);
}_stream也是一个流,图像显示在我的应用程序中,但是我的_stream字段是空的
发布于 2020-01-29 18:54:31
我假设您正在尝试使用_stream字段缓存流,以供将来使用。由于.net Stream类实现了IDisposable接口,所以它依赖您手动释放这个非托管资源(与垃圾收集器为您做的不同)。
我更愿意缓存底层流数据并释放流,而不是试图保存它。
using(Stream stream = await DependencyService.Get<IPhotoPickerService>().GetImageStreamAsync())
{
if (stream != null)
{
// save stream data as an byte array
_streamData = ReadBytes(stream);
ItemPic = GetImageSource(_streamData);
}
}
// a helper method to get the stream data
private byte[] ReadBytes(Stream input)
{
using (MemoryStream ms = new MemoryStream())
{
input.CopyTo(ms);
return ms.ToArray();
}
}
// a helper method to create an image from an byte array
private ImageSource GetImageSource(byte[] data)
{
return ImageSource.FromStream(() => new MemoryStream(data)
}https://stackoverflow.com/questions/59973586
复制相似问题