有没有办法将Stream转换为Image?
我尝试了Bitmap,但它声明我没有System.Drawing ...所以我尝试了这个:
var bitMap = new BitmapImage();
bitMap.SetSourceAsync(stream);
image.Source = bitMap;
编辑: 我正在尝试使用VS 2015构建UWP app +。
2 - 它只是声明命名空间中不存在System.Drawing。
EDIT2:
好的,我可能已经解释错了。我的想法是:我有一个Image,我想将其源代码更改为不同的东西然后重新加载,这样我就可以看到图像了。 该图像实际上是一个“流”,所以我假设我需要将其转换为Bitmap,然后以某种方式加载。
EDIT3:
好的,所以我认为描述然后使用上面的代码会更容易:
我正在使用一个图片框:
var stream = new InMemoryRandomAccessStream();
await mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);
现在我希望这张捕获的照片显示为图像。 (图像“框”在开始时创建,因此想法是更改源)。
答案 0 :(得分:2)
我不确定这是否是您正在寻找的,但如果您想使用BitMapImage的流,您应该使用:
var image = new BitmapImage();
await image.SetSourceAsync(stream);
例如,当您将照片存储为byte []数组时,可以使用该流将其转换为图像:
using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
{
DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0))
writer.WriteBytes(<<here your byte[] array>>);
await writer.StoreAsync();
var image = new BitmapImage();
await image.SetSourceAsync(stream);
}
这就是你需要的吗?
答案 1 :(得分:1)
是的,所以我设法解决了这个问题:
var bitMap = new BitmapImage();
stream.seek(0); // LINE ADDED
bitMap.SetSourceAsync(stream);
image.Source = bitMap;
我发现正在生成的错误是:“找不到组件。”所以我设法通过使用这个技巧来修复它。