如何在c#windows 8中将简单流(http webresponse)转换为位图图像?
我尝试了1000次,将一个简单的流(http webresponse)转换为bitmapimage,但是没有一个教程可以在c#windows 8中使用 例如:如何在c#windows 8中将简单流(http webresponse)转换为位图图像?,c#,windows-8,microsoft-metro,C#,Windows 8,Microsoft Metro,我尝试了1000次,将一个简单的流(http webresponse)转换为bitmapimage,但是没有一个教程可以在c#windows 8中使用 例如: BitmapImage image = new BitmapImage(); image.SetSource(stream); image1.Source = image; 谢谢你的回复 解决方案 InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAcc
BitmapImage image = new BitmapImage();
image.SetSource(stream);
image1.Source = image;
谢谢你的回复
解决方案
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
DataWriter writer = new DataWriter(randomAccessStream.GetOutputStreamAt(0));
writer.WriteBytes((byte[])command);
await writer.StoreAsync();
BitmapImage image = new BitmapImage();
image.SetSource(randomAccessStream);
你试过这个吗
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
DataWriter writer = new DataWriter(randomAccessStream.GetOutputStreamAt(0));
writer.WriteBytes(response.Content.ReadAsByteArray());
BitmapImage image = new BitmapImage();
image.SetSource(randomAccessStream);
请尝试以下代码:
private async Task GetLocalImageAsync(string internetUri, string folderName,
string uniqueName)
{
using (var response = await HttpWebRequest.CreateHttp(internetUri)
.GetResponseAsync())
{
using (var stream = response.GetResponseStream())
{
var folder = await ApplicationData.Current.LocalFolder
.CreateFolderAsync(folderName,
CreationCollisionOption.OpenIfExists);
var file = await folder.CreateFileAsync(
string.Format("{0}", uniqueName),
CreationCollisionOption.ReplaceExisting);
using (var filestream = await file.OpenStreamForWriteAsync())
{
await stream.CopyToAsync(filestream);
await filestream.FlushAsync();
}
}
}
}
你确定流只返回原始图像数据吗?是的,但问题是我不知道正确的方法,我可以这样做。太好了!我很高兴你找到了使它工作所需的额外线路!在修改randomAccessStream的地方,只需初始化?randomAccessStream仍然是0 randomAccessStream{Windows.Storage.Streams.InMemoryRandomAccessStream}Windows.Storage.Streams.InMemoryRandomAccessStream大小0 ulong writer{Windows.Storage.Streams.DataWriter}Windows.Storage.Streams.DataWriter字节顺序BigEndian Windows.Storage.Streams.ByteOrder Unicode Utf8 Windows.Storage.Streams.Unicode UnstoredBufferLength 10134 uint(字节[])e.responseObject{byte[10134]}字节[]我看到了。我想在执行此代码之前,必须先收到整个响应。我不知道如何等到收到全部答复。有人有想法吗?image{Windows.UI.Xaml.Media.Imaging.BitmapImage}Windows.UI.Xaml.Media.Imaging.BitmapImage base{Windows.UI.Xaml.Media.Imaging.BitmapImage}Windows.UI.Xaml.Media.Imaging.BitmapSource{Windows.UI.Xaml.Media.Imaging.BitmapImage}CreateOptions延迟创建Windows.UI.Xaml.Media.Imaging.BitmapCreateOptions解码像素高度0整数解码像素宽度0整数URI源空系统